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.4 KiB

2 years ago
2 years ago
  1. //
  2. // CustomTabItem.swift
  3. // GME Remit
  4. //
  5. // Created by Dibya Malla Thakuri on 04/03/2023.
  6. // Copyright © 2023 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. enum CustomTabItem: String, CaseIterable {
  10. case home
  11. case sendMoney
  12. case profile
  13. }
  14. extension CustomTabItem {
  15. var viewController: UIViewController {
  16. switch self {
  17. case .home:
  18. let homeViewController = HomeWireframe().getMainView()
  19. let navHomeViewController = SwipeNavigationController(rootViewController: homeViewController)
  20. navHomeViewController.hero.isEnabled = true
  21. return navHomeViewController
  22. case .sendMoney:
  23. let sendMoneyViewController = RecipientsWireframe().getMainView()
  24. sendMoneyViewController.setupTabItem()
  25. let navSendMoneyViewController = SwipeNavigationController(rootViewController: sendMoneyViewController)
  26. navSendMoneyViewController.hero.isEnabled = true
  27. return sendMoneyViewController
  28. case .profile:
  29. if let profileViewController = UIStoryboard(name: "Setting", bundle: nil)
  30. .instantiateViewController(withIdentifier: "SettingViewController") as? SettingViewController {
  31. profileViewController.setupTabItem()
  32. let navProfileViewController = SwipeNavigationController(rootViewController: profileViewController)
  33. return navProfileViewController
  34. }
  35. return UIViewController()
  36. }
  37. }
  38. var icon: UIImage? {
  39. switch self {
  40. case .home:
  41. return UIImage(named: "tab-home")?.withRenderingMode(.alwaysOriginal)
  42. case .sendMoney:
  43. return UIImage(named: "tab-contact")?.withRenderingMode(.alwaysOriginal)
  44. case .profile:
  45. return UIImage(systemName: "person.crop.circle")?.withRenderingMode(.alwaysOriginal)
  46. }
  47. }
  48. var selectedIcon: UIImage? {
  49. switch self {
  50. case .home:
  51. return UIImage(named: "tab-home-selected")?.withRenderingMode(.alwaysOriginal)
  52. case .sendMoney:
  53. return UIImage(named: "tab-contact-selected")?.withRenderingMode(.alwaysOriginal)
  54. case .profile:
  55. return UIImage(systemName: "person.crop.circle.fill")?.withRenderingMode(.alwaysOriginal)
  56. }
  57. }
  58. }