// // NewPasswordVC.swift // WOKA // // Created by Bilal on 03/05/2024. // import UIKit class NewPasswordVC: UIViewController { @IBOutlet weak var enterNewPasswordTF: TextFieldShadow! @IBOutlet weak var confirmPassTF: TextFieldShadow! @IBOutlet weak var nextBtn: LocalisedElementsButton! var vm = NewPasswordVM() // MARK: - View LifeCycle override func viewDidLoad() { super.viewDidLoad() vm.vc = self vm.initView() } 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) } @IBAction func nextBtnTapped(_ sender: LocalisedElementsButton) { guard let pass = enterNewPasswordTF.text , let confirmPass = confirmPassTF.text else{return} /* Check for password */ if pass.count < 6 || confirmPass.count < 6{ let sb = UIStoryboard(name: K.StoryBoard.customAlerts, bundle: nil) let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.CustomAlerts.alertCustomVC) as! AlertCustomVC vcPush.contentLabel = "Password is too short." vcPush.mainTitleText = "Error" // vcPush.onDoneBlock = { isDone in } vcPush.modalPresentationStyle = .overCurrentContext vcPush.modalTransitionStyle = .crossDissolve self.present(vcPush, animated: true) return } /* Check if password are matching */ if pass != confirmPass{ let sb = UIStoryboard(name: K.StoryBoard.customAlerts, bundle: nil) let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.CustomAlerts.alertCustomVC) as! AlertCustomVC vcPush.contentLabel = "Password doesn't match" vcPush.mainTitleText = "Error" // vcPush.onDoneBlock = { isDone in } vcPush.modalPresentationStyle = .overCurrentContext vcPush.modalTransitionStyle = .crossDissolve self.present(vcPush, animated: true) return } vm.updatePassword() } } // MARK: - Textfield Delegate extension NewPasswordVC : UITextFieldDelegate{ func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { switch textField{ case enterNewPasswordTF,confirmPassTF: let currentString = (textField.text ?? "") as NSString let newString = currentString.replacingCharacters(in: range, with: string) newString.count == 0 ? (textField.rightView?.isHidden = true) : (textField.rightView?.isHidden = false) return ValidatorClass.sharedInstanec.limitCharacter(length: 16,textField, shouldChangeCharactersIn: range, replacementString: string) default: return true } } func textFieldShouldReturn(_ textField: UITextField) -> Bool { switch textField{ case enterNewPasswordTF: self.confirmPassTF.becomeFirstResponder() case confirmPassTF: self.view.endEditing(true) default: break } return true } }