refactor(observation): migrate SwiftUI state

This commit is contained in:
Peter Steinberger
2025-12-14 05:04:58 +00:00
parent aab5c490dc
commit b48a556de5
43 changed files with 253 additions and 194 deletions

View File

@@ -1,11 +1,13 @@
import AppKit
import Observation
import OSLog
import QuartzCore
import SwiftUI
/// Lightweight, borderless panel that shows the current voice wake transcript near the menu bar.
@MainActor
final class VoiceWakeOverlayController: ObservableObject {
@Observable
final class VoiceWakeOverlayController {
static let shared = VoiceWakeOverlayController()
private let logger = Logger(subsystem: "com.steipete.clawdis", category: "voicewake.overlay")
@@ -17,7 +19,7 @@ final class VoiceWakeOverlayController: ObservableObject {
enum Source: String { case wakeWord, pushToTalk }
@Published private(set) var model = Model()
private(set) var model = Model()
var isVisible: Bool { self.model.isVisible }
struct Model {
@@ -465,7 +467,7 @@ final class VoiceWakeOverlayController: ObservableObject {
}
struct VoiceWakeOverlayView: View {
@ObservedObject var controller: VoiceWakeOverlayController
var controller: VoiceWakeOverlayController
@FocusState private var textFocused: Bool
@State private var isHovering: Bool = false
@State private var closeHovering: Bool = false