You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

69 lines
2.1 KiB

//
// PasswordInputViewController.swift
// GME Remit
//
// Created by Amrit Giri on 6/25/20.
// Copyright © 2020 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class PasswordInputViewController: UIViewController {
@IBOutlet weak var passwordTextField: ValidationTextField!
@IBOutlet weak var doneBtn: UIButton!
@IBOutlet weak var cancelBtn: UIButton!
@IBOutlet weak var titleLbl: UILabel!
private var validDic = [
"pw": false
]
var enteredPassword: ((String)->())?
private var isValid = false {
didSet {
doneBtn.isEnabled = isValid
doneBtn.backgroundColor = isValid ? .themeRed : .themeText
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.isValid = false
self.cancelBtn.isEnabled = true
passwordTextField.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged)
passwordTextField.validCondition = { !$0.isEmpty && $0.validateRegex(regex: passwordRegex)}
passwordTextField.isSecureTextEntry = true
titleLbl.text = "enter_login_password_text".localized()
passwordTextField.errorMessage = "password_error_text".localized()
passwordTextField.titleText = "password_text".localized()
passwordTextField.placeholder = "enter_login_password_text".localized()
doneBtn.setTitle("done_text".localized(), for: .normal)
passwordTextField.becomeFirstResponder()
// Do any additional setup after loading the view.
}
@objc private func editingChanged(_ textField: ValidationTextField) {
switch textField {
case passwordTextField:
validDic["pw"] = passwordTextField.isValid
default: ()
}
isValid = validDic.allSatisfy { $0.value }
}
@IBAction func done(_ sender: UIButton) {
self.enteredPassword?(self.passwordTextField.text ?? "")
self.dismiss(animated: true, completion: nil)
}
@IBAction func cancel(_ sender: UIButton) {
self.dismiss(animated: true, completion: nil)
}
}