Remember feature filter, dont display features during search

This commit is contained in:
Jackson Harper
2023-06-13 20:05:51 +08:00
parent 9ad516520f
commit 4cb14475d0
3 changed files with 18 additions and 14 deletions

View File

@ -398,7 +398,7 @@ struct AnimatingCellHeight: AnimatableModifier {
})
}, label: {
HStack(alignment: .center) {
Text(viewModel.featureFilter.title.uppercased())
Text((FeaturedItemFilter(rawValue: viewModel.featureFilter) ?? .continueReading).title.uppercased())
.font(Font.system(size: 14, weight: .regular))
Image(systemName: "chevron.down")
}.frame(maxWidth: .infinity, alignment: .leading)
@ -420,7 +420,7 @@ struct AnimatingCellHeight: AnimatableModifier {
}
}
} else {
Text(viewModel.featureFilter.emptyMessage)
Text((FeaturedItemFilter(rawValue: viewModel.featureFilter) ?? .continueReading).emptyMessage)
.font(Font.system(size: 14, weight: .regular))
.foregroundColor(Color(hex: "#898989"))
.frame(maxWidth: geo.size.width)
@ -456,7 +456,7 @@ struct AnimatingCellHeight: AnimatableModifier {
.listRowInsets(.init(top: 0, leading: 10, bottom: 10, trailing: 10))
// Only show the feature card section if we have items loaded
if !viewModel.hideFeatureSection, viewModel.items.count > 0 {
if !viewModel.hideFeatureSection, viewModel.items.count > 0, viewModel.searchTerm.isEmpty {
featureCard
.listRowInsets(.init(top: 0, leading: 10, bottom: 10, trailing: 10))
.modifier(AnimatingCellHeight(height: viewModel.featureItems.count > 0 ? 260 : 130))

View File

@ -32,8 +32,6 @@ import Views
@Published var showLabelsSheet = false
@Published var showCommunityModal = false
@Published var featureFilter = FeaturedItemFilter.continueReading
@Published var featureItems = [LinkedItem]()
var cursor: String?
@ -47,20 +45,25 @@ import Views
@AppStorage(UserDefaultKey.hideFeatureSection.rawValue) var hideFeatureSection = false
@AppStorage(UserDefaultKey.lastSelectedLinkedItemFilter.rawValue) var appliedFilter = LinkedItemFilter.inbox.rawValue
@AppStorage(UserDefaultKey.lastSelectedFeaturedItemFilter.rawValue) var featureFilter = FeaturedItemFilter.continueReading.rawValue
func setItems(_ items: [LinkedItem]) {
self.items = items
updateFeatureFilter(featureFilter)
updateFeatureFilter(FeaturedItemFilter(rawValue: featureFilter))
}
func updateFeatureFilter(_ filter: FeaturedItemFilter) {
// now try to update the continue reading items:
featureItems = (items.filter { item in
filter.predicate.evaluate(with: item)
} as NSArray)
.sortedArray(using: [filter.sortDescriptor])
.compactMap { $0 as? LinkedItem }
featureFilter = filter
func updateFeatureFilter(_ filter: FeaturedItemFilter?) {
if let filter = filter {
// now try to update the continue reading items:
featureItems = (items.filter { item in
filter.predicate.evaluate(with: item)
} as NSArray)
.sortedArray(using: [filter.sortDescriptor])
.compactMap { $0 as? LinkedItem }
featureFilter = filter.rawValue
} else {
featureItems = []
}
}
func handleReaderItemNotification(objectID: NSManagedObjectID, dataService: DataService) {

View File

@ -12,6 +12,7 @@ public enum UserDefaultKey: String {
case firebasePushToken
case homeFeedlayoutPreference
case lastSelectedLinkedItemFilter
case lastSelectedFeaturedItemFilter
case lastUsedAppVersion
case lastUsedAppBuildNumber
case lastItemSyncTime