import { useEffect, useState, type JSX } from "react"; import { Navigate, useLocation } from "react-router-dom"; import { getCurrentUser } from "../helper/auth"; export const RequireAdmin = ({ children }: { children: JSX.Element }) => { const [isAdmin, setIsAdmin] = useState(null); const [loading, setLoading] = useState(true); const location = useLocation(); useEffect(() => { const checkAdmin = async () => { const user = await getCurrentUser(); setIsAdmin(user.isAdmin); setLoading(false); }; checkAdmin(); }, []); if (loading) return
Checking permissions...
; if (!isAdmin) { return ; } return children; };