Fixed login bug again

This commit is contained in:
Alois 2026-04-02 22:17:49 +02:00
commit 0d214de5ed
21 changed files with 1142 additions and 1147 deletions

View file

@ -8,6 +8,9 @@ import LegalWrapper from "@/features/legal/screen";
import { Toaster } from "@tensamin/ui/cmp/sonner";
import { TooltipProvider } from "@tensamin/ui/cmp/tooltip";
import { useStorage } from "@tensamin/storage/context";
import { useLocation, useNavigate } from "@tanstack/react-router";
/**
* Executes Layout.
* @param props Parameter props.
@ -45,11 +48,52 @@ export default function Layout(props: { children: ReactNode }) {
<Toaster />
<TooltipProvider>
<Storage>
<LegalWrapper>
<Crypto>{props.children}</Crypto>
</LegalWrapper>
<LoginWrapper>
<LegalWrapper>
<Crypto>{props.children}</Crypto>
</LegalWrapper>
</LoginWrapper>
</Storage>
</TooltipProvider>
</>
);
}
function LoginWrapper({ children }: { children: ReactNode }) {
const [loggedIn, setLoggedIn] = useState<boolean | null>(null);
const { load } = useStorage();
const navigate = useNavigate();
const location = useLocation();
useEffect(() => {
let active = true;
load("user_id").then((userId) => {
if (!active) {
return;
}
if (userId !== 0) {
setLoggedIn(true);
return;
}
setLoggedIn(false);
navigate({
to: "/login",
});
});
return () => {
active = false;
};
}, [load, navigate, location.pathname]);
if (loggedIn !== true && location.pathname !== "/login") {
return null;
}
return children;
}