diff --git a/GMERemittance/Module/New Group/kycForm1/User Interface/View/kycForm1ViewController.swift b/GMERemittance/Module/New Group/kycForm1/User Interface/View/kycForm1ViewController.swift index f8b5e405..1139ff49 100644 --- a/GMERemittance/Module/New Group/kycForm1/User Interface/View/kycForm1ViewController.swift +++ b/GMERemittance/Module/New Group/kycForm1/User Interface/View/kycForm1ViewController.swift @@ -42,6 +42,10 @@ class KycForm1ViewController: UIViewController { struct Constants { static let segmentBackgroundViewColor = UIColor.init(hex: "E7EDF2") static let stateRedColor = UIColor.init(hex: "#EC1C24") + static let male = "Male" + static let female = "Female" + static let other = "Other" + static let cancelTitleString = "Cancel" } // MARK: IBOutlets @@ -77,6 +81,7 @@ class KycForm1ViewController: UIViewController { var presenter: KycForm1ModuleInterface? var kycModel: kycForm1Model = kycForm1Model() + let datePicker = UIDatePicker() var errorTextFieldDict: [String: UITextField] = [:] var errorLabelsDict: [String: UILabel] = [:] @@ -117,6 +122,7 @@ class KycForm1ViewController: UIViewController { setupErrorLabels() setupErrorTextFields() setupDelegates() + self.setupDatePicker() } private func setupDelegates() { @@ -133,6 +139,47 @@ class KycForm1ViewController: UIViewController { self.provinceTextField.delegate = self } + private func setupDatePicker() { + self.datePicker.datePickerMode = .date + self.dobTextField.inputView = datePicker + datePicker.maximumDate = Date() + self.datePicker.addTarget(self, action: #selector(handleDatePicker(sender:)), for: .valueChanged) + } + + @objc private func handleDatePicker(sender: UIDatePicker) { + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "yyyy-MM-dd" + self.dobTextField.text = dateFormatter.string(from: sender.date) + } + + + private func showGenderPicker() { + + + let alertcontroller = UIAlertController.init(title: "Gender", message: nil, preferredStyle: .actionSheet) + alertcontroller.view.tintColor = UIColor.init(hex: "#7b7a7a") + let maleAction = UIAlertAction(title: Constants.male, style: .default, handler: { _ in + self.genderTextField.text = Constants.male + }) + + let femaleAction = UIAlertAction(title: Constants.female, style: .default, handler: { _ in + self.genderTextField.text = Constants.female + }) + + let otherAction = UIAlertAction(title: Constants.other, style: .default, handler: { _ in + self.genderTextField.text = Constants.other + }) + + + let cancelAction = UIAlertAction(title: Constants.cancelTitleString, style: .cancel, handler: nil) + + alertcontroller.addAction(maleAction) + alertcontroller.addAction(femaleAction) + alertcontroller.addAction(otherAction) + alertcontroller.addAction(cancelAction) + self.present(alertcontroller, animated: true, completion: nil) + } + private func validate() { self.presenter?.validate(model: self.kycModel) } @@ -220,7 +267,33 @@ extension KycForm1ViewController: IndicatorInfoProvider { } } + extension KycForm1ViewController: UITextFieldDelegate { + func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { + switch textField { + case genderTextField: + self.genderErrorLabel.isHidden = true + genderTextField.layer.borderWidth = 0 + self.showGenderPicker() + return false + case nativeCountryTextField: + self.nativeCountryErrorLabel.isHidden = true + nativeCountryTextField.layer.borderWidth = 0 + return false + case provinceTextField: + self.provinceErrorLabel.isHidden = true + provinceTextField.layer.borderWidth = 0 + return false + case occupationTextField: + self.occupationErrorLabel.isHidden = true + occupationTextField.layer.borderWidth = 0 + return false + default: + return true + } + } + + func textFieldDidBeginEditing(_ textField: UITextField) { switch textField { case firstNameTextField: @@ -261,3 +334,5 @@ extension KycForm1ViewController: UITextFieldDelegate { } } } + +