@@ -14,7 +14,7 @@ import {
1414 Text ,
1515 Tray ,
1616} from 'opub-ui' ;
17- import React , { useEffect , useReducer , useRef , useState } from 'react' ;
17+ import React , { useEffect , useMemo , useReducer , useRef , useState } from 'react' ;
1818
1919import BreadCrumbs from '@/components/BreadCrumbs' ;
2020import { Icons } from '@/components/icons' ;
@@ -269,7 +269,10 @@ const ListingComponent: React.FC<ListingProps> = ({
269269 const count = facets ?. total ?? 0 ;
270270 const datasetDetails = facets ?. results ?? [ ] ;
271271
272- useUrlParams ( queryParams , setQueryParams , setVariables , lockedFilters ) ;
272+ // Stabilize lockedFilters reference to prevent infinite loops
273+ const stableLockedFilters = useMemo ( ( ) => lockedFilters , [ JSON . stringify ( lockedFilters ) ] ) ;
274+
275+ useUrlParams ( queryParams , setQueryParams , setVariables , stableLockedFilters ) ;
273276 const latestFetchId = useRef ( 0 ) ;
274277
275278 useEffect ( ( ) => {
@@ -399,7 +402,7 @@ const ListingComponent: React.FC<ListingProps> = ({
399402 options = { filterOptions }
400403 setSelectedOptions = { handleFilterChange }
401404 selectedOptions = { queryParams . filters }
402- lockedFilters = { lockedFilters }
405+ lockedFilters = { stableLockedFilters }
403406 />
404407 </ div >
405408
@@ -495,7 +498,7 @@ const ListingComponent: React.FC<ListingProps> = ({
495498 options = { filterOptions }
496499 setSelectedOptions = { handleFilterChange }
497500 selectedOptions = { queryParams . filters }
498- lockedFilters = { lockedFilters }
501+ lockedFilters = { stableLockedFilters }
499502 />
500503 </ Tray >
501504 </ div >
@@ -511,7 +514,7 @@ const ListingComponent: React.FC<ListingProps> = ({
511514 . filter ( ( value ) => category !== 'sort' )
512515 . map ( ( value ) => {
513516 // Check if this filter value is locked
514- const isLocked = lockedFilters [ category ] ?. includes ( value ) ;
517+ const isLocked = stableLockedFilters [ category ] ?. includes ( value ) ;
515518 return (
516519 < Pill
517520 key = { `${ category } -${ value } ` }
0 commit comments