mac: add swiftui web chat option

This commit is contained in:
Peter Steinberger
2025-12-10 02:00:50 +01:00
parent 70fb4d452e
commit 83a2a7a1c2
6 changed files with 698 additions and 29 deletions

View File

@@ -153,6 +153,10 @@ final class AppState: ObservableObject {
didSet { self.ifNotPreview { UserDefaults.standard.set(self.webChatEnabled, forKey: webChatEnabledKey) } }
}
@Published var webChatSwiftUIEnabled: Bool {
didSet { self.ifNotPreview { UserDefaults.standard.set(self.webChatSwiftUIEnabled, forKey: webChatSwiftUIEnabledKey) } }
}
@Published var webChatPort: Int {
didSet { self.ifNotPreview { UserDefaults.standard.set(self.webChatPort, forKey: webChatPortKey) } }
}
@@ -231,6 +235,7 @@ final class AppState: ObservableObject {
self.remoteIdentity = UserDefaults.standard.string(forKey: remoteIdentityKey) ?? ""
self.remoteProjectRoot = UserDefaults.standard.string(forKey: remoteProjectRootKey) ?? ""
self.webChatEnabled = UserDefaults.standard.object(forKey: webChatEnabledKey) as? Bool ?? true
self.webChatSwiftUIEnabled = UserDefaults.standard.object(forKey: webChatSwiftUIEnabledKey) as? Bool ?? false
let storedPort = UserDefaults.standard.integer(forKey: webChatPortKey)
self.webChatPort = storedPort > 0 ? storedPort : 18788
@@ -343,6 +348,7 @@ extension AppState {
state.heartbeatsEnabled = true
state.connectionMode = .local
state.webChatEnabled = true
state.webChatSwiftUIEnabled = false
state.webChatPort = 18788
state.remoteTarget = "user@example.com"
state.remoteIdentity = "~/.ssh/id_ed25519"
@@ -366,6 +372,10 @@ enum AppStateStore {
UserDefaults.standard.object(forKey: webChatEnabledKey) as? Bool ?? true
}
static var webChatSwiftUIEnabled: Bool {
UserDefaults.standard.object(forKey: webChatSwiftUIEnabledKey) as? Bool ?? false
}
static var webChatPort: Int {
let stored = UserDefaults.standard.integer(forKey: webChatPortKey)
return stored > 0 ? stored : 18788