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;