- Made login view. - Continue the flow from onboarding. - added the flow from login-> create account and forget password.
67 lines
2.4 KiB
Swift
67 lines
2.4 KiB
Swift
//
|
|
// ValidatorClass.swift
|
|
// WOKA
|
|
//
|
|
// Created by Bilal on 03/05/2024.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class ValidatorClass {
|
|
static let sharedInstanec = ValidatorClass()
|
|
|
|
func validateName(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
|
|
let currentText = textField.text ?? ""
|
|
|
|
// dont allow leading space for names
|
|
if (range.location == 0 && string == " ") {
|
|
return false
|
|
}
|
|
|
|
// Check if the replacement string is valid (contains only letters and spaces)
|
|
if !string.nameCharacterOnly(){return false}
|
|
|
|
// Ensure that the first and last characters are not spaces
|
|
if currentText.isEmpty && string == " " {
|
|
return false
|
|
}
|
|
|
|
// Allow only one space between first name, middle name, and last name
|
|
if string == " " {
|
|
let components = currentText.components(separatedBy: " ")
|
|
|
|
//Block user from adding 2 spaces in trailing word
|
|
if components.last == "" && string == " "{
|
|
return false
|
|
}
|
|
|
|
if (currentText as NSString).replacingCharacters(in: range, with: string).contains(" "){
|
|
return false
|
|
}
|
|
|
|
let filteredComponents = components.filter { !$0.isEmpty }
|
|
if filteredComponents.count >= 6 {
|
|
return false
|
|
}
|
|
}
|
|
|
|
// Check the length limit (e.g., adjust to your requirements)
|
|
let newLength = currentText.count + string.count - range.length
|
|
return newLength <= 50 // Adjust the limit as needed.
|
|
}
|
|
|
|
func limitCharacter(length : Int, _ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool{
|
|
let maxLength = length
|
|
let currentString = (textField.text ?? "") as NSString
|
|
let newString = currentString.replacingCharacters(in: range, with: string)
|
|
return newString.count <= maxLength
|
|
}
|
|
|
|
func limitCharacterTV(length : Int, _ textView: UITextView, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool{
|
|
let maxLength = length
|
|
let currentString = (textView.text ?? "") as NSString
|
|
let newString = currentString.replacingCharacters(in: range, with: string)
|
|
return newString.count <= maxLength
|
|
}
|
|
}
|