Watch: review fixes for action errors that vanished, feed refreshes dropped or overwritten around a change, a fresh thread screen per route, errors cleared on sign out, notification actions only while paired, cache writes off the main thread and capped at 30 threads, Ask before acting and Load earlier races, two-letter search, C# headings, and strictly encoded query values
This commit is contained in:
1 parent
99b300855e
commit
25be69fa30
14 files changed
+591
-94
No files matched your search
@@ -31,30 +31,35 @@ struct RootView: View {
|
||||
NavigationStack(path: $model.path) {
|
||||
FeedView()
|
||||
.navigationDestination(for: Route.self) { route in
|
||||
switch route {
|
||||
case let .thread(hostId, threadId):
|
||||
ThreadView(hostId: hostId, threadId: threadId)
|
||||
case .newThread:
|
||||
NewThreadView()
|
||||
case .recent:
|
||||
RecentView()
|
||||
case .snoozed:
|
||||
SnoozedView()
|
||||
case .status:
|
||||
StatusView()
|
||||
case let .host(id):
|
||||
HostStatusView(hostId: id)
|
||||
case .notifications:
|
||||
NotificationsView()
|
||||
case .allThreads:
|
||||
HostsView()
|
||||
case let .hostProjects(hostId):
|
||||
ProjectsView(hostId: hostId)
|
||||
case let .projectThreads(hostId, projectId):
|
||||
ProjectThreadsView(hostId: hostId, projectId: projectId)
|
||||
case let .search(query):
|
||||
SearchView(query: query)
|
||||
// A new identity per route, so swapping one thread for another at the
|
||||
// same place in the stack starts the screen's state and polling afresh.
|
||||
Group {
|
||||
switch route {
|
||||
case let .thread(hostId, threadId):
|
||||
ThreadView(hostId: hostId, threadId: threadId)
|
||||
case .newThread:
|
||||
NewThreadView()
|
||||
case .recent:
|
||||
RecentView()
|
||||
case .snoozed:
|
||||
SnoozedView()
|
||||
case .status:
|
||||
StatusView()
|
||||
case let .host(id):
|
||||
HostStatusView(hostId: id)
|
||||
case .notifications:
|
||||
NotificationsView()
|
||||
case .allThreads:
|
||||
HostsView()
|
||||
case let .hostProjects(hostId):
|
||||
ProjectsView(hostId: hostId)
|
||||
case let .projectThreads(hostId, projectId):
|
||||
ProjectThreadsView(hostId: hostId, projectId: projectId)
|
||||
case let .search(query):
|
||||
SearchView(query: query)
|
||||
}
|
||||
}
|
||||
.id(route)
|
||||
}
|
||||
}
|
||||
.sheet(item: $model.snoozing) { item in
|
||||
|
||||
Reference in new issue
Block a user