@@ -63,7 +63,15 @@ export function FeedPage({
6363 const saved = localStorage . getItem ( 'feedFilters' )
6464 if ( saved ) {
6565 try {
66- setSavedFilters ( JSON . parse ( saved ) )
66+ const parsed = JSON . parse ( saved )
67+ // Convert null values back to undefined (they were nullified for JSON serialization)
68+ const restored = Object . fromEntries (
69+ Object . entries ( parsed ) . map ( ( [ k , v ] ) => [
70+ k ,
71+ v === null ? undefined : v ,
72+ ] ) ,
73+ )
74+ setSavedFilters ( restored as typeof search )
6775 } catch {
6876 // Ignore parse errors
6977 }
@@ -75,9 +83,11 @@ export function FeedPage({
7583 }
7684 } , [ mounted ] )
7785
78- // Merge saved filters with URL params (URL params take precedence)
86+ // Use search params directly - savedFilters is only used to restore preferences
87+ // when navigating back to the page (the filters are already in the URL from the
88+ // previous save). We only fall back to savedFilters for viewMode since that's
89+ // not always in the URL.
7990 const effectiveFilters = {
80- ...savedFilters ,
8191 ...search ,
8292 viewMode :
8393 search . viewMode ??
@@ -156,9 +166,22 @@ export function FeedPage({
156166 } )
157167
158168 // Save to localStorage
169+ // Note: JSON.stringify strips undefined values, so we need to explicitly
170+ // null out fields that are being cleared to overwrite saved values
159171 if ( typeof window !== 'undefined' ) {
160- const updatedFilters = { ...search , ...newFilters , page : 1 }
161- localStorage . setItem ( 'feedFilters' , JSON . stringify ( updatedFilters ) )
172+ const updatedFilters = {
173+ ...search ,
174+ ...newFilters ,
175+ page : 1 ,
176+ }
177+ // Convert undefined to null for JSON serialization, then back on parse
178+ const forStorage = Object . fromEntries (
179+ Object . entries ( updatedFilters ) . map ( ( [ k , v ] ) => [
180+ k ,
181+ v === undefined ? null : v ,
182+ ] ) ,
183+ )
184+ localStorage . setItem ( 'feedFilters' , JSON . stringify ( forStorage ) )
162185 setSavedFilters ( updatedFilters )
163186 }
164187 }
0 commit comments