diff --git a/EmployeeDirectory/ViewControllers/EmployeesViewController.swift b/EmployeeDirectory/ViewControllers/EmployeesViewController.swift index f7b98ad..fe1fc3f 100644 --- a/EmployeeDirectory/ViewControllers/EmployeesViewController.swift +++ b/EmployeeDirectory/ViewControllers/EmployeesViewController.swift @@ -29,9 +29,12 @@ class EmployeesViewController: UIViewController { // Configure TableView tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell") tableView.dataSource = self - view.addSubview(tableView) tableView.frame = view.bounds + + //add pull to refresh + tableView.refreshControl = UIRefreshControl() + tableView.refreshControl?.addTarget(self, action: #selector(didPullToRefresh), for: .valueChanged) // Configure Activity Indicator activityIndicator.center = view.center @@ -71,18 +74,7 @@ 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 } @@ -103,6 +95,23 @@ class EmployeesViewController: UIViewController { } } +extension EmployeesViewController { + @objc private func didPullToRefresh() { + viewModel.fetchEmployees() + } + + @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) + } +} + extension EmployeesViewController: UITableViewDataSource { public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return viewModel.employees.count