@@ -63,13 +63,10 @@ export default function useSearch<ItemType extends ServerSideItem>({
6363 setVisibleCount ( ( prev ) => ( prev === count ? prev : count ) )
6464 } , [ ] )
6565
66- // Adjust visibleCount when filtered items change during render
67- // This avoids a double render caused by useEffect synchronization
68- const [ prevFiltered , setPrevFiltered ] = useState ( filtered )
69- if ( filtered !== prevFiltered ) {
70- setPrevFiltered ( filtered )
71- setVisibleCount ( filtered . length )
72- }
66+ // Sync visibleCount when filtered items change (avoids state-update-during-render)
67+ useEffect ( ( ) => {
68+ setVisibleCount ( ( prev ) => ( prev === filtered . length ? prev : filtered . length ) )
69+ } , [ filtered . length ] )
7370
7471 const handleSubmit = useCallback ( ( event : React . FormEvent < HTMLFormElement > ) => {
7572 event . preventDefault ( )
@@ -84,19 +81,14 @@ export default function useSearch<ItemType extends ServerSideItem>({
8481 const currentIndex = refImageGallery ?. current ?. getCurrentIndex ?.( ) ?? 0
8582 const itemsToUse = displayedItems || filtered
8683 const currentItem = itemsToUse [ currentIndex ]
87- if ( ! currentItem ) return
88-
89- // Use filename as unique identifier (works across all albums)
90- const identifier = Array . isArray ( ( currentItem as any ) . filename )
91- ? ( currentItem as any ) . filename [ 0 ]
92- : ( currentItem as any ) . filename
93- if ( ! identifier ) return
94-
95- // Extract coordinates from current item
96- const coordinates = ( currentItem as any ) . coordinates as [ number , number ] | null
97-
98- // Set selectedId with clear flag for immediate processing
99- if ( selectById ) {
84+ const identifier = currentItem
85+ ? ( Array . isArray ( ( currentItem as any ) . filename )
86+ ? ( currentItem as any ) . filename [ 0 ]
87+ : ( currentItem as any ) . filename )
88+ : null
89+ const coordinates = ( currentItem as any ) ?. coordinates as [ number , number ] | null
90+
91+ if ( selectById && identifier ) {
10092 selectById ( identifier , true )
10193 }
10294
@@ -111,7 +103,7 @@ export default function useSearch<ItemType extends ServerSideItem>({
111103 }
112104
113105 // Update URL to reflect the selection (use filename for global uniqueness)
114- router . replace ( `${ pathname } ?select=${ identifier } ` )
106+ router . replace ( identifier ? `${ pathname } ?select=${ identifier } ` : pathname )
115107 } , [ refImageGallery , displayedItems , filtered , selectById , mapFilterEnabled , onClearMapFilter , router , pathname ] )
116108
117109 const { BookmarkButton } = useBookmark ( {
0 commit comments