All files / src/routes PublicRoutes.tsx

0% Statements 0/7
0% Branches 0/4
0% Functions 0/1
0% Lines 0/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21                                         
import Cookies from "js-cookie";
import { Navigate, Outlet, useLocation, useMatch } from "react-router-dom";
import { AUTH_PATHS } from "./paths";
import { safeParse } from "@utils/index";
 
const PublicRoutes = () => {
  const rawUser = Cookies.get("user");
  const user = safeParse<{ role: string }>(rawUser);
  const match = useMatch(AUTH_PATHS.VALIDATE_ACCOUNT);
  const isValidationPath = !!match;
  const { search } = useLocation();
 
  return user && !isValidationPath ? (
    <Navigate to={`${user.role}${search}`} replace />
  ) : (
    <Outlet />
  );
};
 
export default PublicRoutes;