Fix issues with feature filter not being updated

This commit is contained in:
Jackson Harper
2024-01-12 10:11:50 +08:00
parent 00cf035abf
commit cb94e06b43
2 changed files with 16 additions and 4 deletions

View File

@ -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)
}
}
}

View File

@ -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)
}
}
}