From cb94e06b43d87115b08895e597d782bfa94e1ca3 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 12 Jan 2024 10:11:50 +0800 Subject: [PATCH] Fix issues with feature filter not being updated --- .../Sources/App/Views/Home/HomeFeedViewIOS.swift | 11 +++++++---- .../Sources/App/Views/Home/HomeFeedViewModel.swift | 9 +++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift index f3995ef9c..321110e56 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift @@ -573,17 +573,17 @@ struct AnimatingCellHeight: AnimatableModifier { HStack { Menu(content: { Button(action: { - viewModel.fetcher.updateFeatureFilter(context: dataService.viewContext, filter: .continueReading) + viewModel.updateFeatureFilter(context: dataService.viewContext, filter: .continueReading) }, label: { Text("Continue Reading") }) Button(action: { - viewModel.fetcher.updateFeatureFilter(context: dataService.viewContext, filter: .pinned) + viewModel.updateFeatureFilter(context: dataService.viewContext, filter: .pinned) }, label: { Text("Pinned") }) Button(action: { - viewModel.fetcher.updateFeatureFilter(context: dataService.viewContext, filter: .newsletters) + viewModel.updateFeatureFilter(context: dataService.viewContext, filter: .newsletters) }, label: { Text("Newsletters") }) @@ -597,7 +597,7 @@ struct AnimatingCellHeight: AnimatableModifier { HStack(alignment: .center) { Image(systemName: "line.3.horizontal.decrease") .font(Font.system(size: 13, weight: .regular)) - Text((FeaturedItemFilter(rawValue: viewModel.fetcher.featureFilter) ?? .continueReading).title) + Text((FeaturedItemFilter(rawValue: viewModel.featureFilter) ?? .continueReading).title) .font(Font.system(size: 13, weight: .medium)) } .tint(Color(hex: "#007AFF")) @@ -753,6 +753,9 @@ struct AnimatingCellHeight: AnimatableModifier { await viewModel.loadMore(dataService: dataService) } } + + // reload this in case it was changed in settings + viewModel.hideFeatureSection = UserDefaults.standard.bool(forKey: UserDefaultKey.hideFeatureSection.rawValue) } } } diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift index 0000ce363..2bd2261a7 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift @@ -49,6 +49,8 @@ enum LoadingBarStyle { @AppStorage(UserDefaultKey.stopUsingFollowingPrimer.rawValue) var stopUsingFollowingPrimer = false @AppStorage("LibraryTabView::hideFollowingTab") var hideFollowingTab = false + @AppStorage(UserDefaultKey.lastSelectedFeaturedItemFilter.rawValue) var featureFilter = FeaturedItemFilter.continueReading.rawValue + @Published var appliedFilter: InternalFilter? { didSet { if let filterName = appliedFilter?.name.lowercased() { @@ -363,4 +365,11 @@ enum LoadingBarStyle { snackbar("Error modifying emails") } } + + func updateFeatureFilter(context: NSManagedObjectContext, filter: FeaturedItemFilter?) { + if let filter = filter { + featureFilter = filter.rawValue + fetcher.updateFeatureFilter(context: context, filter: filter) + } + } }