import {ReactElement} from 'react';
import {Navigate, Outlet} from 'react-router-dom';
import {useAuth} from '../use-auth';
import {NotFoundPage} from '@common/ui/not-found-page/not-found-page';
interface Props {
children?: ReactElement;
permission?: string;
requireLogin?: boolean;
}
export function AuthRoute({children, permission, requireLogin = true}: Props) {
const {isLoggedIn, hasPermission} = useAuth();
if (
(requireLogin && !isLoggedIn) ||
(permission && !hasPermission(permission))
) {
if (isLoggedIn) {
return ;
}
return ;
}
return children || ;
}