https://dev.kronoz.win/r/marzneshin.git
| 1 |
9ddfbc8 |
Mardin |
2y ago |
import { useAuth } from "@marzneshin/features/auth"; |
| 2 |
9ddfbc8 |
Mardin |
2y ago |
import { useNavigate } from "@tanstack/react-router"; |
| 3 |
9ddfbc8 |
Mardin |
2y ago |
import { useEffect , PropsWithChildren, FC} from "react"; |
| 4 |
9ddfbc8 |
Mardin |
2y ago |
|
| 5 |
9ddfbc8 |
Mardin |
2y ago |
export const SudoRoute: FC<PropsWithChildren> = ({ children }) => { |
| 6 |
9ddfbc8 |
Mardin |
2y ago |
const { isSudo, isLoggedIn } = useAuth(); |
| 7 |
9ddfbc8 |
Mardin |
2y ago |
const navigate = useNavigate(); |
| 8 |
9ddfbc8 |
Mardin |
2y ago |
|
| 9 |
9ddfbc8 |
Mardin |
2y ago |
useEffect(() => { |
| 10 |
9ddfbc8 |
Mardin |
2y ago |
const checkAccess = async () => { |
| 11 |
9ddfbc8 |
Mardin |
2y ago |
const loggedIn = await isLoggedIn(); |
| 12 |
9ddfbc8 |
Mardin |
2y ago |
if (!loggedIn || !isSudo()) { |
| 13 |
9ddfbc8 |
Mardin |
2y ago |
navigate({ to: '/login' }); |
| 14 |
9ddfbc8 |
Mardin |
2y ago |
} |
| 15 |
9ddfbc8 |
Mardin |
2y ago |
}; |
| 16 |
9ddfbc8 |
Mardin |
2y ago |
|
| 17 |
9ddfbc8 |
Mardin |
2y ago |
checkAccess(); |
| 18 |
9ddfbc8 |
Mardin |
2y ago |
}, [isSudo, isLoggedIn, navigate]); |
| 19 |
9ddfbc8 |
Mardin |
2y ago |
|
| 20 |
9ddfbc8 |
Mardin |
2y ago |
if (!isSudo) { |
| 21 |
9ddfbc8 |
Mardin |
2y ago |
return null; |
| 22 |
9ddfbc8 |
Mardin |
2y ago |
} |
| 23 |
9ddfbc8 |
Mardin |
2y ago |
|
| 24 |
9ddfbc8 |
Mardin |
2y ago |
return children; |
| 25 |
9ddfbc8 |
Mardin |
2y ago |
}; |
| 26 |
9ddfbc8 |
Mardin |
2y ago |
|