Remember feature filter, dont display features during search
This commit is contained in:
@ -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))
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -12,6 +12,7 @@ public enum UserDefaultKey: String {
|
||||
case firebasePushToken
|
||||
case homeFeedlayoutPreference
|
||||
case lastSelectedLinkedItemFilter
|
||||
case lastSelectedFeaturedItemFilter
|
||||
case lastUsedAppVersion
|
||||
case lastUsedAppBuildNumber
|
||||
case lastItemSyncTime
|
||||
|
||||
Reference in New Issue
Block a user