mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
fetch labels from network if none are found in core data
This commit is contained in:
parent
609aff48fc
commit
06481d21d3
2 changed files with 19 additions and 3 deletions
|
|
@ -43,8 +43,24 @@ import Views
|
|||
try? fetchRequest.execute()
|
||||
}
|
||||
|
||||
labels = fetchedLabels ?? []
|
||||
unselectedLabels = fetchedLabels ?? []
|
||||
if fetchedLabels?.count == 0 {
|
||||
await fetchLabelsFromNetwork(dataService: dataService)
|
||||
} else {
|
||||
labels = fetchedLabels ?? []
|
||||
unselectedLabels = fetchedLabels ?? []
|
||||
}
|
||||
}
|
||||
|
||||
func fetchLabelsFromNetwork(dataService: DataService) async {
|
||||
let labelIDs = try? await dataService.labels()
|
||||
guard let labelIDs = labelIDs else { return }
|
||||
|
||||
let fetchedLabels = await dataService.viewContext.perform {
|
||||
labelIDs.compactMap { dataService.viewContext.object(with: $0) as? LinkedItemLabel }
|
||||
}
|
||||
|
||||
labels = fetchedLabels
|
||||
unselectedLabels = fetchedLabels
|
||||
}
|
||||
|
||||
func createLabel(dataService: DataService, name: String, color: Color, description: String?) {
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ struct InternalLinkedItem {
|
|||
if let existingLabels = linkedItem.labels {
|
||||
linkedItem.removeFromLabels(existingLabels)
|
||||
}
|
||||
|
||||
|
||||
for label in labels {
|
||||
linkedItem.addToLabels(label.asManagedObject(inContext: context))
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue