From 10a3e9d05d08c08b4d768a47d7a6939a5f80c7c7 Mon Sep 17 00:00:00 2001 From: Bilal Date: Fri, 3 May 2024 20:26:58 +0530 Subject: [PATCH] - Made the forget password UI. - Made login view. - Continue the flow from onboarding. - added the flow from login-> create account and forget password. --- .../EyeCloseIcon.imageset/Contents.json | 26 +++++++++++++++ .../EyeCloseIcon.imageset/hide.png | Bin 0 -> 736 bytes .../EyeCloseIcon.imageset/hide@2x.png | Bin 0 -> 1711 bytes .../EyeCloseIcon.imageset/hide@3x.png | Bin 0 -> 2009 bytes .../EyeOpenIcon.imageset/Contents.json | 26 +++++++++++++++ .../EyeOpenIcon.imageset/show.png | Bin 0 -> 607 bytes .../EyeOpenIcon.imageset/show@2x.png | Bin 0 -> 1448 bytes .../EyeOpenIcon.imageset/show@3x.png | Bin 0 -> 1929 bytes WOKA/Authentication/Controller/LoginVC.swift | 29 +++++++++++++++++ .../Controller/NewPasswordVC.swift | 29 +++++++++++++++++ .../Controller/ResetPassUserNameVC.swift | 29 +++++++++++++++++ WOKA/Authentication/ViewModel/LoginVM.swift | 8 +++++ .../UIElements Helper/TextFieldPassword.swift | 8 +++++ WOKA/Helpers/Validations/ValidatorClass.swift | 8 +++++ WOKA/Home/Home.storyboard | 30 ++++++++++++++++++ WOKA/Home/HomeVC.swift | 29 +++++++++++++++++ 16 files changed, 222 insertions(+) create mode 100644 WOKA/Assets/Assets.xcassets/Authentication/EyeCloseIcon.imageset/Contents.json create mode 100644 WOKA/Assets/Assets.xcassets/Authentication/EyeCloseIcon.imageset/hide.png create mode 100644 WOKA/Assets/Assets.xcassets/Authentication/EyeCloseIcon.imageset/hide@2x.png create mode 100644 WOKA/Assets/Assets.xcassets/Authentication/EyeCloseIcon.imageset/hide@3x.png create mode 100644 WOKA/Assets/Assets.xcassets/Authentication/EyeOpenIcon.imageset/Contents.json create mode 100644 WOKA/Assets/Assets.xcassets/Authentication/EyeOpenIcon.imageset/show.png create mode 100644 WOKA/Assets/Assets.xcassets/Authentication/EyeOpenIcon.imageset/show@2x.png create mode 100644 WOKA/Assets/Assets.xcassets/Authentication/EyeOpenIcon.imageset/show@3x.png create mode 100644 WOKA/Authentication/Controller/LoginVC.swift create mode 100644 WOKA/Authentication/Controller/NewPasswordVC.swift create mode 100644 WOKA/Authentication/Controller/ResetPassUserNameVC.swift create mode 100644 WOKA/Authentication/ViewModel/LoginVM.swift create mode 100644 WOKA/Helpers/UIElements Helper/TextFieldPassword.swift create mode 100644 WOKA/Helpers/Validations/ValidatorClass.swift create mode 100644 WOKA/Home/Home.storyboard create mode 100644 WOKA/Home/HomeVC.swift diff --git a/WOKA/Assets/Assets.xcassets/Authentication/EyeCloseIcon.imageset/Contents.json b/WOKA/Assets/Assets.xcassets/Authentication/EyeCloseIcon.imageset/Contents.json new file mode 100644 index 0000000..abfe314 --- /dev/null +++ b/WOKA/Assets/Assets.xcassets/Authentication/EyeCloseIcon.imageset/Contents.json @@ -0,0 +1,26 @@ +{ + "images" : [ + { + "filename" : "hide.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "hide@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "hide@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/WOKA/Assets/Assets.xcassets/Authentication/EyeCloseIcon.imageset/hide.png b/WOKA/Assets/Assets.xcassets/Authentication/EyeCloseIcon.imageset/hide.png new file mode 100644 index 0000000000000000000000000000000000000000..90c5ad24220dd8c36ce46232c9ae275c5ae7a4f0 GIT binary patch literal 736 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 P00000NkvXXu0mjfgqe=s literal 0 HcmV?d00001 diff --git a/WOKA/Authentication/Controller/LoginVC.swift b/WOKA/Authentication/Controller/LoginVC.swift new file mode 100644 index 0000000..e0c7339 --- /dev/null +++ b/WOKA/Authentication/Controller/LoginVC.swift @@ -0,0 +1,29 @@ +// +// LoginVC.swift +// WOKA +// +// Created by Bilal on 03/05/2024. +// + +import UIKit + +class LoginVC: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/WOKA/Authentication/Controller/NewPasswordVC.swift b/WOKA/Authentication/Controller/NewPasswordVC.swift new file mode 100644 index 0000000..9982325 --- /dev/null +++ b/WOKA/Authentication/Controller/NewPasswordVC.swift @@ -0,0 +1,29 @@ +// +// NewPasswordVC.swift +// WOKA +// +// Created by Bilal on 03/05/2024. +// + +import UIKit + +class NewPasswordVC: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/WOKA/Authentication/Controller/ResetPassUserNameVC.swift b/WOKA/Authentication/Controller/ResetPassUserNameVC.swift new file mode 100644 index 0000000..1f603b2 --- /dev/null +++ b/WOKA/Authentication/Controller/ResetPassUserNameVC.swift @@ -0,0 +1,29 @@ +// +// ResetPassUserNameVC.swift +// WOKA +// +// Created by Bilal on 03/05/2024. +// + +import UIKit + +class ResetPassUserNameVC: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/WOKA/Authentication/ViewModel/LoginVM.swift b/WOKA/Authentication/ViewModel/LoginVM.swift new file mode 100644 index 0000000..60926f0 --- /dev/null +++ b/WOKA/Authentication/ViewModel/LoginVM.swift @@ -0,0 +1,8 @@ +// +// LoginVM.swift +// WOKA +// +// Created by Bilal on 03/05/2024. +// + +import Foundation diff --git a/WOKA/Helpers/UIElements Helper/TextFieldPassword.swift b/WOKA/Helpers/UIElements Helper/TextFieldPassword.swift new file mode 100644 index 0000000..775731e --- /dev/null +++ b/WOKA/Helpers/UIElements Helper/TextFieldPassword.swift @@ -0,0 +1,8 @@ +// +// TextFieldPassword.swift +// WOKA +// +// Created by Bilal on 03/05/2024. +// + +import Foundation diff --git a/WOKA/Helpers/Validations/ValidatorClass.swift b/WOKA/Helpers/Validations/ValidatorClass.swift new file mode 100644 index 0000000..94eb8b7 --- /dev/null +++ b/WOKA/Helpers/Validations/ValidatorClass.swift @@ -0,0 +1,8 @@ +// +// ValidatorClass.swift +// WOKA +// +// Created by Bilal on 03/05/2024. +// + +import Foundation diff --git a/WOKA/Home/Home.storyboard b/WOKA/Home/Home.storyboard new file mode 100644 index 0000000..dd79351 --- /dev/null +++ b/WOKA/Home/Home.storyboard @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WOKA/Home/HomeVC.swift b/WOKA/Home/HomeVC.swift new file mode 100644 index 0000000..3de7df6 --- /dev/null +++ b/WOKA/Home/HomeVC.swift @@ -0,0 +1,29 @@ +// +// HomeVC.swift +// WOKA +// +// Created by Bilal on 03/05/2024. +// + +import UIKit + +class HomeVC: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +}