make sure labels are loaded before fetching items

This commit is contained in:
Satindar Dhillon
2022-08-08 09:24:43 -07:00
parent f7abcf09d1
commit e180006ba0

View File

@ -55,11 +55,6 @@ import Views
items.insert(item, at: 0)
}
func loadUpdatedItems(since _: Date, updatedCursor _: String?) {
isLoading = true
showLoadingBar = true
}
func loadItems(dataService: DataService, isRefresh: Bool) async {
let syncStartTime = Date()
let thisSearchIdx = searchIdx
@ -73,6 +68,14 @@ import Views
Task { _ = try? await dataService.fetchViewer() }
}
// Fetch labels if none are available locally
let fetchRequest: NSFetchRequest<Models.LinkedItemLabel> = LinkedItemLabel.fetchRequest()
fetchRequest.fetchLimit = 1
if (try? dataService.viewContext.count(for: fetchRequest)) == 0 {
_ = try? await dataService.labels()
}
// Sync items if necessary
let lastSyncDate = dateFormatter.date(from: lastItemSyncTime) ?? Date(timeIntervalSinceReferenceDate: 0)
let syncResult = try? await dataService.syncLinkedItems(since: lastSyncDate, cursor: nil)