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