Add first-class Actions management (#63)
This commit is contained in:
@@ -7,11 +7,20 @@ final class RepositoriesViewController: RefreshingTableViewController {
|
||||
private var rows: [RepositoryRow] = []
|
||||
private var currentPage: UInt32 = 0
|
||||
|
||||
private var panelTitle: String {
|
||||
switch mode {
|
||||
case .issues: return "Issues"
|
||||
case .commits: return "Repositories"
|
||||
case .milestones: return "Milestones"
|
||||
case .actions: return "Actions"
|
||||
}
|
||||
}
|
||||
|
||||
init(context: AppContext, mode: RepositoryPane) {
|
||||
self.context = context
|
||||
self.mode = mode
|
||||
super.init()
|
||||
title = context.core.activeServerName() ?? "Repositories"
|
||||
setPanelTitle(self, panelTitle, server: context.core.activeServerName())
|
||||
}
|
||||
|
||||
@available(*, unavailable)
|
||||
@@ -19,19 +28,27 @@ final class RepositoriesViewController: RefreshingTableViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
navigationItem.leftBarButtonItem = UIBarButtonItem(
|
||||
image: context.symbol("server.rack"),
|
||||
primaryAction: UIAction { [weak self] _ in
|
||||
guard let self else { return }
|
||||
self.navigationController?.pushViewController(
|
||||
ServersViewController(context: self.context),
|
||||
animated: true
|
||||
)
|
||||
}
|
||||
)
|
||||
loadContent(refreshing: false)
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
if navigationController?.viewControllers.first === self {
|
||||
navigationItem.leftBarButtonItem = UIBarButtonItem(
|
||||
image: context.symbol("server.rack"),
|
||||
primaryAction: UIAction { [weak self] _ in
|
||||
guard let self else { return }
|
||||
self.navigationController?.pushViewController(
|
||||
ServersViewController(context: self.context),
|
||||
animated: true
|
||||
)
|
||||
}
|
||||
)
|
||||
} else {
|
||||
navigationItem.leftBarButtonItem = nil
|
||||
}
|
||||
}
|
||||
|
||||
override func loadContent(refreshing: Bool) {
|
||||
loadPage(1, refreshing: refreshing)
|
||||
}
|
||||
@@ -118,6 +135,13 @@ final class RepositoriesViewController: RefreshingTableViewController {
|
||||
owner: row.owner,
|
||||
repository: row.name
|
||||
)
|
||||
case .actions:
|
||||
destination = ActionsViewController(
|
||||
context: context,
|
||||
owner: row.owner,
|
||||
repository: row.name,
|
||||
defaultBranch: row.defaultBranch
|
||||
)
|
||||
}
|
||||
navigationController?.pushViewController(destination, animated: true)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user