added a segmented control to select service state
Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
parent
5d8285935f
commit
aced710388
@ -11,6 +11,7 @@ import Combine
|
||||
class EmployeesViewController: UIViewController {
|
||||
private let tableView = UITableView()
|
||||
private let activityIndicator = UIActivityIndicatorView(style: .large)
|
||||
private let modeSegmentedControl = UISegmentedControl(items: EmployeeServiceMode.allCases.map{ $0.rawValue } )
|
||||
private let viewModel = EmployeesViewModel()
|
||||
private var cancellables = Set<AnyCancellable>()
|
||||
|
||||
@ -18,8 +19,7 @@ class EmployeesViewController: UIViewController {
|
||||
super.viewDidLoad()
|
||||
setupUI()
|
||||
bindViewModel()
|
||||
viewModel.changeMode(to: .empty)
|
||||
//viewModel.fetchEmployees()
|
||||
viewModel.fetchEmployees()
|
||||
}
|
||||
|
||||
private func setupUI() {
|
||||
@ -35,6 +35,11 @@ class EmployeesViewController: UIViewController {
|
||||
// Configure Activity Indicator
|
||||
activityIndicator.center = view.center
|
||||
view.addSubview(activityIndicator)
|
||||
|
||||
// Configure Mode Selector
|
||||
modeSegmentedControl.selectedSegmentIndex = 0
|
||||
modeSegmentedControl.addTarget(self, action: #selector(onServiceModeChange), for: .valueChanged)
|
||||
navigationItem.titleView = modeSegmentedControl
|
||||
}
|
||||
|
||||
private func bindViewModel() {
|
||||
@ -66,6 +71,17 @@ class EmployeesViewController: UIViewController {
|
||||
.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() {
|
||||
var message: String? {
|
||||
guard !viewModel.isLoading else { return nil }
|
||||
|
||||
Loading…
Reference in New Issue
Block a user