Files
steipete--codexbar/Sources/CodexBar/StatusItemController+MenuActionMapping.swift
T
2026-07-13 12:22:33 +08:00

36 lines
1.9 KiB
Swift

import AppKit
extension StatusItemController {
func selector(for action: MenuDescriptor.MenuAction) -> (Selector, Any?) {
switch action {
case .installUpdate: (#selector(self.installUpdate), nil)
case .refresh: (#selector(self.refreshMenuItem(_:)), nil)
case .refreshAugmentSession: (#selector(self.refreshAugmentSession), nil)
case .dashboard: (#selector(self.openDashboard), nil)
case .statusPage: (#selector(self.openStatusPage), nil)
case .changelog: (#selector(self.openChangelog), nil)
case .addCodexAccount: (#selector(self.addManagedCodexAccountFromMenu(_:)), nil)
case let .addProviderAccount(provider): (#selector(self.runSwitchAccount(_:)), provider.rawValue)
case let .requestCodexSystemPromotion(managedAccountID):
(#selector(self.requestCodexSystemPromotionFromMenu(_:)), managedAccountID.uuidString)
case let .switchAccount(provider): (#selector(self.runSwitchAccount(_:)), provider.rawValue)
case let .openTerminal(command): (#selector(self.openTerminalCommand(_:)), command)
case let .loginToProvider(url): (#selector(self.openLoginToProvider(_:)), url)
case .settings: (#selector(self.showSettingsGeneral), nil)
case .about: (#selector(self.showSettingsAbout), nil)
case .quit: (#selector(self.quit), nil)
case let .copyError(message): (#selector(self.copyError(_:)), message)
case let .focusAgentSession(session, remoteHost):
(#selector(self.focusAgentSession(_:)), [session.id, remoteHost ?? ""])
}
}
func codexAddAccountSubtitle() -> String? {
if self.settings.hasUnreadableManagedCodexAccountStore {
return L("Managed account storage unavailable")
}
guard self.managedCodexAccountCoordinator.isAuthenticatingManagedAccount else { return nil }
return L("Managed Codex login in progress…")
}
}