Changes
2 changed files (+48/-0)
-
-
@@ -132,6 +132,7 @@ }var rootPage: BrowsePage? = nil var pages: [BrowseService.Item: BrowsePage] = [:] var message: String? = nil @ObservationIgnored private let conn: Communicatable
-
@@ -172,6 +173,10 @@ )) ) ) if let msg = browse.message { message = msg } guard browse.action == .list else { throw LoadError.nonListResponse
-
@@ -233,6 +238,10 @@ )) ) if let msg = browse.message { message = msg } switch browse.action { case .list: guard let list = browse.list else {
-
@@ -310,6 +319,10 @@ )) ) ) if let msg = browse.message { message = msg } guard browse.action == .list else { logger.info(
-
-
-
@@ -47,6 +47,12 @@ label: "plac.ConnectedView.actionQueue") var body: some View { let shouldDisplayMessage = Binding { return browsing.message != nil } set: { _ in browsing.message = nil } VStack(spacing: 0) { NavigationSplitView { List(hierarchies, id: \.self, selection: $browsing.hierarchy) {
-
@@ -81,6 +87,17 @@ Browser(model: browsing, item: item)} } } } .alert( "Message from server", isPresented: shouldDisplayMessage, presenting: browsing.message ) { _ in Button("Close") { browsing.message = nil } } message: { message in Text(message) } Divider()
-
@@ -216,6 +233,23 @@ """) } var rootAction: MockPage { .init( browse: """ { "action": "list", "list": { "title": "Mock Page", "subtitle": "Various responses", "level": 0 }, "message": "You performed an action." } """, load: root.load ) } var list: MockPage { .init( browse: """
-
@@ -312,6 +346,7 @@ case "mock-action":try await Task.sleep(for: .milliseconds(300)) print("Got action: \(itemKey)") stack = [] return try rootAction.browseMsg() case "mock-list-action": try await Task.sleep(for: .milliseconds(300)) print("Got action: \(itemKey)")
-