Fix SearchView adding entries to browser history

This commit is contained in:
grimsi
2025-05-24 18:32:52 +02:00
parent 067253b30d
commit 64f81d1329
@@ -21,6 +21,7 @@ export default function SearchView() {
const libraries = useSnapshot(libraryState).libraries as LibraryDto[]; const libraries = useSnapshot(libraryState).libraries as LibraryDto[];
const [searchParams, setSearchParams] = useSearchParams(); const [searchParams, setSearchParams] = useSearchParams();
const [initialLoadComplete, setInitialLoadComplete] = useState(false);
// State to track selected filter values // State to track selected filter values
const [searchTerm, setSearchTerm] = useState<string>(""); const [searchTerm, setSearchTerm] = useState<string>("");
@@ -49,10 +50,14 @@ export default function SearchView() {
setSelectedThemes(new Set(themes)); setSelectedThemes(new Set(themes));
setSelectedFeatures(new Set(features)); setSelectedFeatures(new Set(features));
setSelectedPerspectives(new Set(perspectives)); setSelectedPerspectives(new Set(perspectives));
setInitialLoadComplete(true);
}, []); }, []);
// Update search parameters whenever the filters change // Update search parameters whenever the filters change
useEffect(() => { useEffect(() => {
if (!initialLoadComplete) return;
const newParams = new URLSearchParams(); const newParams = new URLSearchParams();
// Preserve search term if exists // Preserve search term if exists
@@ -97,7 +102,7 @@ export default function SearchView() {
}); });
} }
setSearchParams(newParams); setSearchParams(newParams, {replace: true});
}, [searchTerm, selectedLibraries, selectedDevelopers, selectedGenres, }, [searchTerm, selectedLibraries, selectedDevelopers, selectedGenres,
selectedThemes, selectedFeatures, selectedPerspectives]); selectedThemes, selectedFeatures, selectedPerspectives]);