From 9e35fee17cba7a5e84d50d3cf932d6960adeabbc Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 22 Dec 2022 15:46:39 +0800 Subject: [PATCH] Always sort labels when presenting them --- .../Sources/App/Views/Labels/LabelsViewModel.swift | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/apple/OmnivoreKit/Sources/App/Views/Labels/LabelsViewModel.swift b/apple/OmnivoreKit/Sources/App/Views/Labels/LabelsViewModel.swift index f66634fbd..0bda6b136 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Labels/LabelsViewModel.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Labels/LabelsViewModel.swift @@ -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 }