diff --git a/src/frontend/src/routes/_layout.tsx b/src/frontend/src/routes/_layout.tsx index 79939e35..5fb80f58 100644 --- a/src/frontend/src/routes/_layout.tsx +++ b/src/frontend/src/routes/_layout.tsx @@ -4,12 +4,19 @@ import { Outlet, createFileRoute, redirect } from "@tanstack/react-router"; import useTurnstileValidation, { hasCompletedCaptcha, } from "../hooks/validation/turnstileValidation"; +import { useGraphInputStore } from "../store/GraphInputStore"; const security_ip = localStorage.getItem("security_ip"); export const Route = createFileRoute("/_layout")({ component: Layout, beforeLoad: async () => { + try { + const searchParams = new URLSearchParams(location.hash.slice(1)); + useGraphInputStore.getState().getStoreFromHash(searchParams); + } catch (error) { + console.log("Coulnd't get url hash to store properly") + } if (!hasCompletedCaptcha()) { throw redirect({ to: "/captcha", diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 1aae6368..3e28cbdc 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -97,7 +97,9 @@ const validateLeagues = (searchParams: URLSearchParams) => { }; export const validateAndSetSearchParams = (searchParams: URLSearchParams) => { + const graphState = useGraphInputStore.getState(); try { + graphState.setHashFromStore(); validateLeagues(searchParams); } catch (error) { const graphState = useGraphInputStore.getState(); @@ -105,6 +107,8 @@ export const validateAndSetSearchParams = (searchParams: URLSearchParams) => { graphState.addLeague(DEFAULT_LEAGUES[0]); const searchParams = new URLSearchParams(); searchParams.set("league", DEFAULT_LEAGUES[0]); - location.hash = searchParams.toString(); + graphState.setHashFromStore(); + } finally { + graphState.setStateHash(undefined); } };