Skip to content

Commit 959c8ca

Browse files
committed
chore(heureka): improve store prop handling
1 parent 155cbca commit 959c8ca

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

apps/heureka/src/components/Services/ServicesFilters.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
import React, { useCallback, useEffect } from "react"
7-
import { useLoaderData, useNavigate, useRouteContext } from "@tanstack/react-router"
6+
import React, { useCallback, useLayoutEffect } from "react"
7+
import { useLoaderData, useNavigate, useRouteContext, useSearch } from "@tanstack/react-router"
88
import { Filters } from "../common/Filters"
99
import { FilterSettings } from "../common/Filters/types"
1010
import { getFiltersForUrl, getInitialFilters } from "./utils"
@@ -15,17 +15,17 @@ export const ServicesFilters = () => {
1515
const navigate = useNavigate()
1616
const { filters, filterSettings } = useLoaderData({ from: "/services/" })
1717
const { appProps } = useRouteContext({ from: "/services/" })
18+
const search = useSearch({ from: "/services/" })
1819
const { hasAppliedInitialFilters, markInitialFiltersApplied } = useStore()
1920

2021
// Use store to track initial filters across tab navigation - prevents re-application when switching between services/vulnerabilities tabs
21-
useEffect(() => {
22+
useLayoutEffect(() => {
2223
if (hasAppliedInitialFilters) return
2324

24-
const urlParams = new URLSearchParams(window.location.search)
25-
const hasUrlFilters = Array.from(urlParams.keys()).some((key) => key.startsWith(SELECTED_FILTER_PREFIX))
26-
const hasAnySearchParams = urlParams.toString().length > 0
25+
// Use parsed search params from TanStack Router instead of window.location.search
26+
const hasUrlFilters = Object.keys(search).some((key) => key.startsWith(SELECTED_FILTER_PREFIX))
2727

28-
if (!hasUrlFilters && !hasAnySearchParams && appProps?.initialFilters?.support_group?.length) {
28+
if (!hasUrlFilters && appProps?.initialFilters?.support_group?.length) {
2929
const initialFilters = getInitialFilters(appProps.initialFilters)
3030

3131
if (initialFilters.length > 0) {
@@ -40,7 +40,7 @@ export const ServicesFilters = () => {
4040
markInitialFiltersApplied()
4141
}
4242
}
43-
}, [navigate, appProps, hasAppliedInitialFilters, markInitialFiltersApplied])
43+
}, [navigate, appProps, hasAppliedInitialFilters, markInitialFiltersApplied, search])
4444

4545
const handleFilterChange = useCallback(
4646
(updatedFilterSettings: FilterSettings) => {

0 commit comments

Comments
 (0)