Fix empty labels view bug

This commit is contained in:
Jackson Harper 2023-11-01 22:50:21 +08:00
parent 6cf9b2a05e
commit de636748c1
2 changed files with 13 additions and 11 deletions

View file

@ -179,7 +179,7 @@ struct ApplyLabelsView: View {
Group {
#if os(iOS)
NavigationView {
if viewModel.isLoading {
if viewModel.labels.isEmpty, viewModel.isLoading {
EmptyView()
} else {
innerBody
@ -190,14 +190,16 @@ struct ApplyLabelsView: View {
.frame(minWidth: 400, minHeight: 600)
#endif
}
.task {
switch mode {
case let .item(feedItem):
await viewModel.loadLabels(dataService: dataService, item: feedItem)
case let .highlight(highlight):
await viewModel.loadLabels(dataService: dataService, highlight: highlight)
case let .list(labels):
await viewModel.loadLabels(dataService: dataService, initiallySelectedLabels: labels)
.onAppear {
Task {
switch mode {
case let .item(feedItem):
await viewModel.loadLabels(dataService: dataService, item: feedItem)
case let .highlight(highlight):
await viewModel.loadLabels(dataService: dataService, highlight: highlight)
case let .list(labels):
await viewModel.loadLabels(dataService: dataService, initiallySelectedLabels: labels)
}
}
}
}

View file

@ -42,6 +42,7 @@ import SwiftUI
unselectedLabels.insert(label)
}
}
isLoading = false
Task.detached(priority: .userInitiated) {
if let labelIDs = try? await dataService.labels() {
@ -58,11 +59,10 @@ import SwiftUI
self.unselectedLabels.insert(label)
}
}
self.isLoading = false
}
}
}
isLoading = false
}
func loadLabelsFromStore(dataService: DataService) async {