mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-19 08:03:50 +02:00
Add thread list empty view
This commit is contained in:
@@ -31,6 +31,7 @@ final class ThreadListViewController: UIViewController {
|
||||
// MARK: Outlets
|
||||
|
||||
@IBOutlet private weak var threadsTableView: UITableView!
|
||||
@IBOutlet private weak var emptyView: ThreadListEmptyView!
|
||||
|
||||
// MARK: Private
|
||||
|
||||
@@ -102,6 +103,8 @@ final class ThreadListViewController: UIViewController {
|
||||
theme.applyStyle(onNavigationBar: navigationBar)
|
||||
}
|
||||
|
||||
emptyView.update(theme: theme)
|
||||
emptyView.backgroundColor = theme.colors.background
|
||||
self.threadsTableView.backgroundColor = theme.backgroundColor
|
||||
self.threadsTableView.separatorColor = theme.colors.separator
|
||||
self.threadsTableView.reloadData()
|
||||
@@ -142,6 +145,8 @@ final class ThreadListViewController: UIViewController {
|
||||
self.renderLoading()
|
||||
case .loaded:
|
||||
self.renderLoaded()
|
||||
case .empty(let viewModel):
|
||||
self.renderEmptyView(withViewModel: viewModel)
|
||||
case .showingFilterTypes:
|
||||
self.renderShowingFilterTypes()
|
||||
case .error(let error):
|
||||
@@ -150,12 +155,24 @@ final class ThreadListViewController: UIViewController {
|
||||
}
|
||||
|
||||
private func renderLoading() {
|
||||
emptyView.isHidden = true
|
||||
threadsTableView.isHidden = true
|
||||
self.activityPresenter.presentActivityIndicator(on: self.view, animated: true)
|
||||
}
|
||||
|
||||
private func renderLoaded() {
|
||||
self.activityPresenter.removeCurrentActivityIndicator(animated: true)
|
||||
threadsTableView.isHidden = false
|
||||
self.threadsTableView.reloadData()
|
||||
navigationItem.rightBarButtonItem?.isEnabled = true
|
||||
}
|
||||
|
||||
private func renderEmptyView(withViewModel emptyViewModel: ThreadListEmptyViewModel) {
|
||||
self.activityPresenter.removeCurrentActivityIndicator(animated: true)
|
||||
emptyView.configure(withViewModel: emptyViewModel)
|
||||
threadsTableView.isHidden = true
|
||||
emptyView.isHidden = false
|
||||
navigationItem.rightBarButtonItem?.isEnabled = viewModel.selectedFilterType == .myThreads
|
||||
}
|
||||
|
||||
private func renderShowingFilterTypes() {
|
||||
@@ -254,3 +271,13 @@ extension ThreadListViewController: UITableViewDelegate {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - ThreadListEmptyViewDelegate
|
||||
|
||||
extension ThreadListViewController: ThreadListEmptyViewDelegate {
|
||||
|
||||
func threadListEmptyViewTappedShowAllThreads(_ emptyView: ThreadListEmptyView) {
|
||||
viewModel.process(viewAction: .selectFilterType(.all))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user