Files
openclaw/apps/macos/Sources/OpenClaw/AppNavigationActions.swift
Peter Steinberger aae474ab97 fix(macos): stop dashboard windows flashing during reconnects (#117112)
* fix(macos): stop dashboard windows flashing during reconnects

* fix(macos): refresh native localization inventory
2026-07-31 16:56:35 -07:00

41 lines
1.3 KiB
Swift

import AppKit
@MainActor
enum AppNavigationActions {
static func openDashboard() {
DashboardManager.shared.presentDashboard()
}
static func openChat(sessionKey: String? = nil, agentID: String? = nil, draft: String? = nil) {
NSApp.activate(ignoringOtherApps: true)
Task { @MainActor in
let resolvedSessionKey = if let sessionKey {
sessionKey
} else {
await WebChatManager.shared.preferredSessionKey()
}
WebChatManager.shared.show(sessionKey: resolvedSessionKey, agentID: agentID, draft: draft)
}
}
static func toggleCanvas() {
NSApp.activate(ignoringOtherApps: true)
Task { @MainActor in
if AppStateStore.shared.canvasPanelVisible {
CanvasManager.shared.hideAll()
} else {
let sessionKey = await GatewayConnection.shared.mainSessionKey()
_ = try? CanvasManager.shared.show(sessionKey: sessionKey, path: nil)
}
}
}
static func openSettings(tab: SettingsTab = .general) {
SettingsTabRouter.request(tab)
SettingsWindowOpener.shared.open()
DispatchQueue.main.async {
NotificationCenter.default.post(name: .openclawSelectSettingsTab, object: tab)
}
}
}