import { Navigate, Outlet } from 'react-router'; import { useAuthStore } from '../features/auth/store'; interface ProtectedRouteProps { requiresAuth?: boolean; requiresAdmin?: boolean; } const ProtectedRoute = ({ requiresAuth = true, requiresAdmin = false, }: ProtectedRouteProps) => { const { isAuthenticated, user } = useAuthStore(); // Jika memerlukan authentication tapi tidak authenticated, redirect ke login if (requiresAuth && !isAuthenticated) { return ; } // Jika sudah authenticated tapi mengakses halaman login, redirect ke dashboard if (!requiresAuth && isAuthenticated) { return ; } // Jika memerlukan role admin tapi bukan admin, redirect ke dashboard if (requiresAdmin && user?.role !== 'admin') { return ; } return ; }; export default ProtectedRoute;