mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
Use the same code for loading labels from highlights as library items
This commit is contained in:
parent
6a5bf6ffe7
commit
3b6d720b2b
2 changed files with 8 additions and 25 deletions
|
|
@ -23,12 +23,13 @@ import Views
|
|||
func loadLabels(
|
||||
dataService: DataService,
|
||||
item: LinkedItem? = nil,
|
||||
highlight: Highlight? = nil,
|
||||
initiallySelectedLabels: [LinkedItemLabel]? = nil
|
||||
) async {
|
||||
isLoading = true
|
||||
let selLabels = initiallySelectedLabels ?? item?.sortedLabels ?? highlight?.sortedLabels ?? []
|
||||
|
||||
await loadLabelsFromStore(dataService: dataService)
|
||||
let selLabels = initiallySelectedLabels ?? item?.sortedLabels ?? []
|
||||
for label in labels {
|
||||
if selLabels.contains(label) {
|
||||
selectedLabels.insert(label)
|
||||
|
|
@ -43,7 +44,6 @@ import Views
|
|||
dataService.viewContext.performAndWait {
|
||||
self.setLabels(labelIDs.compactMap { dataService.viewContext.object(with: $0) as? LinkedItemLabel })
|
||||
}
|
||||
let selLabels = initiallySelectedLabels ?? item?.sortedLabels ?? []
|
||||
for label in self.labels {
|
||||
if selLabels.contains(label) {
|
||||
self.selectedLabels.insert(label)
|
||||
|
|
@ -58,29 +58,6 @@ import Views
|
|||
isLoading = false
|
||||
}
|
||||
|
||||
func loadLabels(
|
||||
dataService: DataService,
|
||||
highlight: Highlight
|
||||
) async {
|
||||
isLoading = true
|
||||
|
||||
if let labelIDs = try? await dataService.labels() {
|
||||
dataService.viewContext.performAndWait {
|
||||
setLabels(labelIDs.compactMap { dataService.viewContext.object(with: $0) as? LinkedItemLabel })
|
||||
}
|
||||
let selLabels = highlight.labels ?? []
|
||||
for label in labels {
|
||||
if selLabels.contains(label) {
|
||||
selectedLabels.insert(label)
|
||||
} else {
|
||||
unselectedLabels.insert(label)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
isLoading = false
|
||||
}
|
||||
|
||||
func loadLabelsFromStore(dataService: DataService) async {
|
||||
let fetchRequest: NSFetchRequest<Models.LinkedItemLabel> = LinkedItemLabel.fetchRequest()
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,12 @@ public extension Highlight {
|
|||
return highlight
|
||||
}
|
||||
|
||||
var sortedLabels: [LinkedItemLabel] {
|
||||
labels.asArray(of: LinkedItemLabel.self).sorted {
|
||||
($0.name ?? "").lowercased() < ($1.name ?? "").lowercased()
|
||||
}
|
||||
}
|
||||
|
||||
func update(
|
||||
inContext context: NSManagedObjectContext,
|
||||
newAnnotation: String
|
||||
|
|
|
|||
Loading…
Reference in a new issue