Files
juip-web/src/components/authGuard.tsx

22 lines
586 B
TypeScript

import { Navigate, useLocation } from "react-router-dom"
import { useProfileStore } from "@/components/stores/profile"
export default function AuthGuard({ children }: { children: React.ReactNode }) {
const location = useLocation()
const token = useProfileStore(state => state.token)
const userInfo = useProfileStore(state => state.userInfo)
const isValid = token !== null && userInfo !== null
if (!isValid) {
return (
<Navigate
to={`/login?redirect=${encodeURIComponent(location.pathname)}`}
replace
/>
)
}
return <>{children}</>
}