- Handled cc avenue payment web view
- Added analytics and crashlytics. - Completed add address - Completed payment , added callback handler
This commit is contained in:
133
WOKA/Address/Controller/AddNewAddressVC.swift
Normal file
133
WOKA/Address/Controller/AddNewAddressVC.swift
Normal file
@@ -0,0 +1,133 @@
|
||||
//
|
||||
// AddNewAddressVC.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 29/07/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class AddNewAddressVC: UIViewController {
|
||||
|
||||
@IBOutlet weak var enterAddressNAmeTF: TextFieldShadow! // min - 2 , max - 50
|
||||
@IBOutlet weak var addressLine1TF: TextFieldShadow!
|
||||
@IBOutlet weak var addressLine2TF: TextFieldShadow!
|
||||
@IBOutlet weak var cityTF: TextFieldShadow!
|
||||
@IBOutlet weak var stateTF: TextFieldShadow!
|
||||
@IBOutlet weak var pinCodeTF: TextFieldShadow!
|
||||
@IBOutlet weak var countryTF: TextFieldShadow!
|
||||
@IBOutlet weak var phoneNumberTF: TextFieldShadow!
|
||||
|
||||
var vm = AddNewAddressVM()
|
||||
|
||||
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 viewDidAppear(_ animated: Bool) {
|
||||
self.navigationController?.setColor(color: .white)
|
||||
}
|
||||
|
||||
override func viewWillDisappear(_ animated: Bool) {
|
||||
super.viewWillDisappear(animated)
|
||||
self.navigationController?.setNavigationBarHidden(true, animated: animated)
|
||||
}
|
||||
|
||||
override func viewDidDisappear(_ animated: Bool) {
|
||||
super.viewDidDisappear(animated)
|
||||
|
||||
// Customize the navigation bar's appearance
|
||||
self.navigationController?.setColor(color: .black)
|
||||
}
|
||||
@IBAction func submitBtnTapped(_ sender: LocalisedElementsButton) {
|
||||
|
||||
if enterAddressNAmeTF.text!.count < 2 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Name should be minimum 2 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
if addressLine1TF.text!.count < 15 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Address Line 1 should be minimum 15 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
if addressLine2TF.text!.count < 15 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Address Line 2 should be minimum 15 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
if cityTF.text!.count < 2 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "City should be minimum 2 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
if stateTF.text!.count < 2 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "State should be minimum 2 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
if countryTF.text!.count < 2 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Country should be minimum 2 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
if phoneNumberTF.text!.count < 10 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Enter 10 digit mobile number", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
self.vm.addAddress()
|
||||
}
|
||||
}
|
||||
|
||||
extension AddNewAddressVC : UITextFieldDelegate{
|
||||
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
|
||||
switch textField{
|
||||
case enterAddressNAmeTF:
|
||||
if !string.nameCharacterOnly(){return false}
|
||||
// min - 2 , max - 50
|
||||
return ValidatorClass.sharedInstanec.limitCharacter(length: 50,textField, shouldChangeCharactersIn: range, replacementString: string)
|
||||
case addressLine1TF, addressLine2TF:
|
||||
if !string.numberAndCharacter(){return false}
|
||||
// min - 2 , max - 200
|
||||
return ValidatorClass.sharedInstanec.limitCharacter(length: 200,textField, shouldChangeCharactersIn: range, replacementString: string)
|
||||
case cityTF, stateTF, countryTF:
|
||||
if !string.nameCharacterOnly(){return false}
|
||||
// min - 2 , max - 200
|
||||
return ValidatorClass.sharedInstanec.limitCharacter(length: 50,textField, shouldChangeCharactersIn: range, replacementString: string)
|
||||
case phoneNumberTF:
|
||||
if !string.onlyNumber(){return false}
|
||||
// max - 10
|
||||
return ValidatorClass.sharedInstanec.limitCharacter(length: 10,textField, shouldChangeCharactersIn: range, replacementString: string)
|
||||
default:
|
||||
break
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
||||
switch textField{
|
||||
case enterAddressNAmeTF:
|
||||
addressLine1TF.becomeFirstResponder()
|
||||
case addressLine1TF:
|
||||
addressLine2TF.becomeFirstResponder()
|
||||
case addressLine2TF:
|
||||
cityTF.becomeFirstResponder()
|
||||
case cityTF:
|
||||
stateTF.becomeFirstResponder()
|
||||
case stateTF:
|
||||
countryTF.becomeFirstResponder()
|
||||
case countryTF:
|
||||
phoneNumberTF.becomeFirstResponder()
|
||||
default:
|
||||
break
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user