/* ===================================================================== App — 라우터. AuthProvider 로 감싸고 역할 가드(RequireAuth) 적용. 라우트 (task 명세): /login -> Login /learn -> LearnerHome (learner) /learn/session/:sessionId -> Session /learn/session/:sessionId/review -> SessionReview /teach -> Professor (teacher → data-role=instructor) /admin -> Admin (admin) /settings -> Settings / -> Navigate(역할 홈, 미인증이면 /login) 보호 라우트는 AuthContext 기반 간단 가드. 과설계 금지. ===================================================================== */ import type { ReactNode } from "react"; import { BrowserRouter, Navigate, Route, Routes, useLocation } from "react-router-dom"; import { AuthProvider, useAuth, roleHomePath, type Role } from "./lib/auth"; import Login from "./pages/Login"; import LearnerHome from "./pages/LearnerHome"; import Session from "./pages/Session"; import SessionReview from "./pages/SessionReview"; import Professor from "./pages/Professor"; import Admin from "./pages/Admin"; import Settings from "./pages/Settings"; /** 부트스트랩 로딩 동안 깜빡임 최소화용 중립 화면. */ function BootScreen() { return (