- Handled optional gender type - Handled optional gender in profile - Remaining MyListVC changes
96 lines
3.3 KiB
Swift
96 lines
3.3 KiB
Swift
//
|
|
// ProfileVC.swift
|
|
// WOKA
|
|
//
|
|
// Created by Bilal on 05/06/2024.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class ProfileVC: UIViewController {
|
|
|
|
@IBOutlet weak var avatarImage: UIImageView!
|
|
@IBOutlet weak var userNameLabel: UILabel!
|
|
@IBOutlet weak var fullNameTF: TextFieldShadow!
|
|
@IBOutlet weak var emailTF: TextFieldShadow!
|
|
@IBOutlet weak var dob: UIDatePicker!
|
|
@IBOutlet weak var boyView: UIView!
|
|
@IBOutlet weak var girlView: UIView!
|
|
@IBOutlet weak var nextBtn: LocalisedElementsButton!
|
|
|
|
var vm = ProfileVM()
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
vm.vc = self
|
|
vm.initView()
|
|
self.title = "Profile".localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
|
|
|
|
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
|
|
navigationController?.navigationBar.shadowImage = UIImage()
|
|
}
|
|
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
navigationController?.setNavigationBarHidden(false, animated: animated)
|
|
}
|
|
|
|
override func viewWillDisappear(_ animated: Bool) {
|
|
super.viewWillDisappear(animated)
|
|
navigationController?.setNavigationBarHidden(true, animated: animated)
|
|
if self.isMovingFromParent {
|
|
// Back button was pressed
|
|
PersistentStorage.shared.addOthersCount()
|
|
}
|
|
}
|
|
|
|
@IBAction func nextBtnTapped(_ sender: LocalisedElementsButton) {
|
|
PersistentStorage.shared.addOthersCount()
|
|
if fullNameTF.text!.count < 3 {
|
|
let sb = UIStoryboard(name: K.StoryBoard.customAlerts, bundle: nil)
|
|
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.CustomAlerts.alertCustomVC) as! AlertCustomVC
|
|
vcPush.contentLabel = "Name is too short".localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
|
|
vcPush.mainTitleText = "Error".localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
|
|
vcPush.modalPresentationStyle = .overCurrentContext
|
|
vcPush.modalTransitionStyle = .crossDissolve
|
|
self.present(vcPush, animated: true)
|
|
return
|
|
}
|
|
|
|
vm.updateUserData()
|
|
}
|
|
}
|
|
|
|
// MARK: - Textfield
|
|
|
|
extension ProfileVC : UITextFieldDelegate {
|
|
|
|
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool{
|
|
switch textField{
|
|
case fullNameTF:
|
|
// check if the latest name is same as the stored name
|
|
if let text = textField.text, let textRange = Range(range, in: text) {
|
|
let updatedText = text.replacingCharacters(in: textRange, with: string)
|
|
vm.checkChanges(name: updatedText)
|
|
}
|
|
if !string.nameCharacterOnly(){return false}
|
|
return ValidatorClass.sharedInstanec.limitCharacter(length: 50,textField, shouldChangeCharactersIn: range, replacementString: string)
|
|
default:
|
|
return true
|
|
}
|
|
}
|
|
|
|
// func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
|
// switch textField{
|
|
// case emailTF:
|
|
// nameTF.becomeFirstResponder()
|
|
// case nameTF:
|
|
// textField.resignFirstResponder()
|
|
// default:
|
|
// break
|
|
// }
|
|
// return true
|
|
// }
|
|
//
|
|
}
|