UNPKG

create-ex-den-kit

Version:

Create exam projects with Ex-Den-Kit

33 lines (26 loc) 834 B
import React from 'react'; import { Navigate, Outlet } from 'react-router-dom'; import { useAuth } from '../contexts/AuthContext'; import { motion } from 'framer-motion'; const ProtectedRoute = ({ adminOnly = false }) => { const { user, loading, isAdmin } = useAuth(); if (loading) { return ( <div className="min-h-screen flex items-center justify-center"> <motion.div animate={{ rotate: 360 }} transition={{ duration: 1, repeat: Infinity, ease: 'linear' }} className="w-16 h-16 border-4 border-primary border-t-transparent rounded-full" /> </div> ); } if (!user) { return <Navigate to="/login" replace />; } if (adminOnly && !isAdmin) { return <Navigate to="/dashboard" replace />; } return <Outlet />; }; export default ProtectedRoute;