DefaultRedirect.tsx raw
1 import React from "react";
2 import { Outlet, useLocation, useNavigate } from "react-router";
3 import Loading from "src/components/Loading";
4 import { localStorageKeys } from "src/constants";
5 import { useInfo } from "src/hooks/useInfo";
6
7 export function DefaultRedirect() {
8 const { data: info } = useInfo();
9 const location = useLocation();
10 const navigate = useNavigate();
11
12 React.useEffect(() => {
13 if (
14 !info ||
15 (info.running &&
16 info.unlocked &&
17 (info.albyAccountConnected || !info.albyUserIdentifier))
18 ) {
19 return;
20 }
21 const returnTo = location.pathname + location.search;
22 window.localStorage.setItem(localStorageKeys.returnTo, returnTo);
23 navigate("/");
24 }, [info, location, navigate]);
25
26 if (!info) {
27 return <Loading />;
28 }
29
30 return <Outlet />;
31 }
32