- AuthProvider + ProtectedRoute + AdminRoute (인증 가드) - LoginPage (Google OAuth), PendingPage, DeniedPage - AppLayout (사이드바 + 메인 콘텐츠) - HomePage (퀵링크 카드), GuidePage (섹션 동적 렌더링) - BrowserRouter 라우팅 구성 - API fetch 래퍼 + 메뉴 네비게이션 유틸 - 타입 정의 (User, Role, AuthResponse, NavItem, Issue) - CLAUDE.md 상세화 (별도 세션 작업 가이드)
13 lines
241 B
TypeScript
13 lines
241 B
TypeScript
import { Navigate, Outlet } from 'react-router';
|
|
import { useAuth } from './useAuth';
|
|
|
|
export function AdminRoute() {
|
|
const { user } = useAuth();
|
|
|
|
if (!user?.isAdmin) {
|
|
return <Navigate to="/" replace />;
|
|
}
|
|
|
|
return <Outlet />;
|
|
}
|