From e180006ba0b32216ebfedba78bf37ec180b174cd Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Mon, 8 Aug 2022 09:24:43 -0700 Subject: [PATCH] make sure labels are loaded before fetching items --- .../Sources/App/Views/Home/HomeFeedViewModel.swift | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift index 8a22bdfc1..c4a6809cd 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift @@ -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 = 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)