Files
feishin/src/renderer/router/outlets/PrivateOutlet.tsx
T
2022-07-30 17:44:57 -07:00

18 lines
477 B
TypeScript

import { Navigate, Outlet, useLocation } from 'react-router-dom';
import { useAuthStore } from '../../store';
interface PrivateOutletProps {
redirectTo: string;
}
export const PrivateOutlet = ({ redirectTo }: PrivateOutletProps) => {
const location = useLocation();
const isAuthenticated = useAuthStore((state) => state.isAuthenticated);
if (isAuthenticated) {
return <Outlet />;
}
return <Navigate replace state={{ from: location }} to={redirectTo} />;
};