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 {
|
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 }
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user