Changes
3 changed files (+25/-4)
-
-
@@ -64,8 +64,8 @@ let logger = Logger()var ptr: UnsafeMutablePointer<PlacKit.plac_connection> init(server: CoreServer) { self.ptr = PlacKit.plac_connection_make(server.ptr, nil) init(server: CoreServer, token: String? = nil) { self.ptr = PlacKit.plac_connection_make(server.ptr, token) } init(ptr: UnsafeMutablePointer<PlacKit.plac_connection>) {
-
-
-
@@ -31,6 +31,8 @@ var serverId: CoreServer.ID?@State private var state: MainViewState = .loading @AppStorage("PlacApp.token") private var savedToken: String? private let logger = Logger() private let queue = DispatchQueue(label: "plac.server-find")
-
@@ -41,6 +43,9 @@ case .loading:ProgressView() case .found(let conn): ConnectedView(conn: conn) .onAuthorize { token in savedToken = token } case .findError(_): ContentUnavailableView { Label(
-
@@ -102,7 +107,9 @@ return} DispatchQueue.main.async { state = .found(Connection(server: result.entries[0])) state = .found( Connection(server: result.entries[0], token: savedToken) ) } } }
-
@@ -122,6 +129,8 @@ @State private var zone_id: String? = nil@State private var zones: [String: CoreZone] = [:] private let queue = DispatchQueue(label: "plac.event-loop") var onAuthorizeAction: ((_ token: String) -> Void)? var body: some View { let state: Binding<ConnectionState<CoreZone>> = .init(
-
@@ -166,7 +175,8 @@ return} switch event { case .connected(_): case .connected(let ev): onAuthorizeAction?(ev.token) conn.subscribeZoneChanges() break case .connectionError(let ev):
-
@@ -197,7 +207,14 @@ break} } } } } extension ConnectedView { func onAuthorize(_ handler: @escaping (String) -> Void) -> ConnectedView { var new = self new.onAuthorizeAction = handler return new } }
-
-
-
@@ -49,6 +49,8 @@ struct placApp: App {@AppStorage("PlacApp.connectedServerId") private var connectedServerId: String? @AppStorage("PlacApp.token") private var savedToken: String? var body: some Scene { WindowGroup("Plac", id: "main-window") { if let connectedServerId = connectedServerId {
-
@@ -57,12 +59,14 @@ } else {ServerDiscovery() .onConnect { server in connectedServerId = server.id savedToken = nil } } } .commands { ConnectionCommands(onDisconnect: { connectedServerId = nil savedToken = nil }) } .defaultSize(width: 800, height: 600)
-