|
import { Navigate, Outlet } from 'react-router-dom'; |
|
import { useUserStore } from '@/entities/User/model/store/useUserStore'; |
|
import { USER_AUTH_DATA } from '@/shared/const/localStorage'; |
|
|
|
interface ProtectedRouteProps { |
|
redirectPath?: string; |
|
} |
|
|
|
export const ProtectedRoute = (props: ProtectedRouteProps) => { |
|
const { redirectPath } = props; |
|
const setAuthUser = useUserStore((state) => state.setAuthUser); |
|
const user = localStorage.getItem(USER_AUTH_DATA); |
|
|
|
if (user) { |
|
setAuthUser(JSON.parse(user)); |
|
return <Outlet />; |
|
} |
|
|
|
return <Navigate to={redirectPath || '/login'} replace />; |
|
}; |
|
|