22 lines
551 B
TypeScript
22 lines
551 B
TypeScript
|
import { Navigate, useLocation } from 'react-router-dom'
|
||
|
import { useAppSelector } from '../hooks'
|
||
|
import { appPublicRoutes } from '.'
|
||
|
|
||
|
export function PrivateRoute({ children }: { children: JSX.Element }) {
|
||
|
const location = useLocation()
|
||
|
const isLoggedIn = useAppSelector((state) => state.auth?.loggedIn)
|
||
|
if (!isLoggedIn) {
|
||
|
return (
|
||
|
<Navigate
|
||
|
to={{
|
||
|
pathname: appPublicRoutes.landingPage,
|
||
|
search: `?callbackPath=${btoa(location.pathname)}`
|
||
|
}}
|
||
|
replace
|
||
|
/>
|
||
|
)
|
||
|
}
|
||
|
|
||
|
return children
|
||
|
}
|