fix: splash (#3168)

This commit is contained in:
pochoclin
2025-10-02 16:23:45 -04:00
committed by GitHub
parent 09d8f92798
commit c36f15d3a9
2 changed files with 6 additions and 3 deletions

View File

@@ -69,6 +69,7 @@ describe("SplashRoute", () => {
it("redirects to login when onboarded but session is not active", async () => {
useGlobalStore.setState(s => {
s.app.boot = "booted";
s.session.status = "ready";
s.settings.onboardingComplete = true;
});

View File

@@ -1,12 +1,13 @@
import { useEffect, useRef } from "react";
import { useNavigate } from "react-router";
import { useShallow } from "zustand/shallow";
import { SplashScreen } from "@/components/splash-screen";
import { useGlobalStore } from "@/stores/global";
export function SplashRoute() {
const appBoot = useGlobalStore(s => s.app.boot);
const onboarded = useGlobalStore(s => s.settings.onboardingComplete);
const isActive = useGlobalStore(s => s.session.isActive);
const { isActive, status: sessionStatus } = useGlobalStore(useShallow(s => s.session));
const preferredCountry = useGlobalStore(s => s.preferences.country);
const initialRedirectAttempted = useRef(false);
const navigate = useNavigate();
@@ -29,12 +30,13 @@ export function SplashRoute() {
}
}
} else {
if (!initialRedirectAttempted.current) {
// make sure session is fully loaded
if (!initialRedirectAttempted.current && sessionStatus === "ready") {
initialRedirectAttempted.current = true;
navigate("/login", { flushSync: true });
}
}
}, [appBoot, onboarded, isActive, navigate, preferredCountry]);
}, [appBoot, onboarded, isActive, navigate, preferredCountry, sessionStatus]);
return <SplashScreen />;
}