Add first-class Actions management (#63)

This commit is contained in:
Georg Bauer
2026-08-15 20:06:52 +02:00
parent f84ab774e6
commit 59bcddfadf
32 changed files with 4039 additions and 275 deletions

View File

@@ -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)
}