From 3f3bdd2d4f90db48eeed87f1266509338f279cd8 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 17 Jul 2023 14:37:50 +0800 Subject: [PATCH] Only use local fetch for certain filters --- .../Sources/App/Views/Home/HomeFeedViewModel.swift | 4 +++- apple/OmnivoreKit/Sources/Models/LinkedItemFilter.swift | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift index 9e81ab861..52b32f73f 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift @@ -183,6 +183,8 @@ import Views cursor: isRefresh ? nil : cursor ) + let filter = LinkedItemFilter(rawValue: appliedFilter) + if let queryResult = queryResult { let newItems: [LinkedItem] = { var itemObjects = [LinkedItem]() @@ -192,7 +194,7 @@ import Views return itemObjects }() - if searchTerm.replacingOccurrences(of: " ", with: "").isEmpty, LinkedItemFilter(rawValue: appliedFilter) != .deleted { + if searchTerm.replacingOccurrences(of: " ", with: "").isEmpty, filter?.allowLocalFetch ?? false { updateFetchController(dataService: dataService) } else { // Don't use FRC for searching. Use server results directly. diff --git a/apple/OmnivoreKit/Sources/Models/LinkedItemFilter.swift b/apple/OmnivoreKit/Sources/Models/LinkedItemFilter.swift index eb9975b47..5bfd91d81 100644 --- a/apple/OmnivoreKit/Sources/Models/LinkedItemFilter.swift +++ b/apple/OmnivoreKit/Sources/Models/LinkedItemFilter.swift @@ -36,6 +36,15 @@ public extension LinkedItemFilter { } } + var allowLocalFetch: Bool { + switch self { + case .inbox: + return true + default: + return false + } + } + var predicate: NSPredicate { let undeletedPredicate = NSPredicate( format: "%K != %i AND %K != \"DELETED\"",