Always sort labels when presenting them

This commit is contained in:
Jackson Harper
2022-12-22 15:46:39 +08:00
parent eb026f2bfb
commit 9e35fee17c

View File

@ -12,6 +12,10 @@ import Views
@Published var showCreateLabelModal = false
@Published var labelSearchFilter = ""
func setLabels(_ labels: [LinkedItemLabel]) {
self.labels = labels.sorted { $0.unwrappedName.trimmingCharacters(in: .whitespaces) < $1.unwrappedName.trimmingCharacters(in: .whitespaces) }
}
func loadLabels(
dataService: DataService,
item: LinkedItem? = nil,
@ -21,7 +25,7 @@ import Views
if let labelIDs = try? await dataService.labels() {
dataService.viewContext.performAndWait {
self.labels = labelIDs.compactMap { dataService.viewContext.object(with: $0) as? LinkedItemLabel }
setLabels(labelIDs.compactMap { dataService.viewContext.object(with: $0) as? LinkedItemLabel })
}
let selLabels = initiallySelectedLabels ?? item?.sortedLabels ?? []
for label in labels {
@ -44,7 +48,7 @@ import Views
if let labelIDs = try? await dataService.labels() {
dataService.viewContext.performAndWait {
self.labels = labelIDs.compactMap { dataService.viewContext.object(with: $0) as? LinkedItemLabel }
setLabels(labelIDs.compactMap { dataService.viewContext.object(with: $0) as? LinkedItemLabel })
}
let selLabels = highlight.labels ?? []
for label in labels {
@ -69,7 +73,7 @@ import Views
if fetchedLabels?.count == 0 {
await fetchLabelsFromNetwork(dataService: dataService)
} else {
labels = fetchedLabels ?? []
setLabels(fetchedLabels ?? [])
unselectedLabels = fetchedLabels ?? []
}
}
@ -82,7 +86,7 @@ import Views
labelIDs.compactMap { dataService.viewContext.object(with: $0) as? LinkedItemLabel }
}
labels = fetchedLabels
setLabels(fetchedLabels)
unselectedLabels = fetchedLabels
}