22 lines
586 B
TypeScript
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}</>
|
|
}
|