added a segmented control to select service state

Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
Matt Bruce 2025-01-20 18:26:19 -06:00
parent 5d8285935f
commit aced710388

View File

@ -11,6 +11,7 @@ import Combine
class EmployeesViewController: UIViewController { class EmployeesViewController: UIViewController {
private let tableView = UITableView() private let tableView = UITableView()
private let activityIndicator = UIActivityIndicatorView(style: .large) private let activityIndicator = UIActivityIndicatorView(style: .large)
private let modeSegmentedControl = UISegmentedControl(items: EmployeeServiceMode.allCases.map{ $0.rawValue } )
private let viewModel = EmployeesViewModel() private let viewModel = EmployeesViewModel()
private var cancellables = Set<AnyCancellable>() private var cancellables = Set<AnyCancellable>()
@ -18,8 +19,7 @@ class EmployeesViewController: UIViewController {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
bindViewModel() bindViewModel()
viewModel.changeMode(to: .empty) viewModel.fetchEmployees()
//viewModel.fetchEmployees()
} }
private func setupUI() { private func setupUI() {
@ -35,6 +35,11 @@ class EmployeesViewController: UIViewController {
// Configure Activity Indicator // Configure Activity Indicator
activityIndicator.center = view.center activityIndicator.center = view.center
view.addSubview(activityIndicator) view.addSubview(activityIndicator)
// Configure Mode Selector
modeSegmentedControl.selectedSegmentIndex = 0
modeSegmentedControl.addTarget(self, action: #selector(onServiceModeChange), for: .valueChanged)
navigationItem.titleView = modeSegmentedControl
} }
private func bindViewModel() { private func bindViewModel() {
@ -66,6 +71,17 @@ class EmployeesViewController: UIViewController {
.store(in: &cancellables) .store(in: &cancellables)
} }
@objc private func onServiceModeChange(_ sender: UISegmentedControl) {
let selectedMode: EmployeeServiceMode
switch sender.selectedSegmentIndex {
case 0: selectedMode = .production
case 1: selectedMode = .malformed
case 2: selectedMode = .empty
default: return
}
viewModel.changeMode(to: selectedMode)
}
private func updateFooter() { private func updateFooter() {
var message: String? { var message: String? {
guard !viewModel.isLoading else { return nil } guard !viewModel.isLoading else { return nil }