19 lines
476 B
TypeScript
19 lines
476 B
TypeScript
|
|
import type { ReactNode } from "react";
|
||
|
|
import { Navigate, useLocation } from "react-router-dom";
|
||
|
|
import { getAccessToken } from "../Api";
|
||
|
|
|
||
|
|
interface ProtectedRouteProps {
|
||
|
|
children: ReactNode;
|
||
|
|
}
|
||
|
|
|
||
|
|
export const ProtectedRoute = ({ children }: ProtectedRouteProps) => {
|
||
|
|
const token = getAccessToken();
|
||
|
|
const location = useLocation();
|
||
|
|
|
||
|
|
if (!token) {
|
||
|
|
return <Navigate to="/login" state={{ from: location }} replace />;
|
||
|
|
}
|
||
|
|
|
||
|
|
return <>{children}</>;
|
||
|
|
};
|