gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/libs/sudo-routes/index.tsx · master
Source
1 7389ad0 Mardin 2y ago import { useAuth } from "@marzneshin/modules/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