SetupRedirect.tsx raw

   1  import React from "react";
   2  import { Outlet, useLocation, useNavigate } from "react-router";
   3  import Loading from "src/components/Loading";
   4  import { useInfo } from "src/hooks/useInfo";
   5  
   6  export function SetupRedirect() {
   7    const { data: info } = useInfo();
   8    const location = useLocation();
   9    const navigate = useNavigate();
  10  
  11    React.useEffect(() => {
  12      if (!info) {
  13        return;
  14      }
  15      if (info.setupCompleted && info.running) {
  16        navigate("/");
  17        return;
  18      }
  19    }, [info, location, navigate]);
  20  
  21    if (!info) {
  22      return <Loading />;
  23    }
  24  
  25    return <Outlet />;
  26  }
  27