generated from pricelees/issue-pr-template
<!-- 제목 양식 --> <!-- [이슈번호] 작업 요약 (예시: [#10] Gitea 템플릿 생성) --> ## 📝 관련 이슈 및 PR **PR과 관련된 이슈 번호** - #22 ## ✨ 작업 내용 <!-- 어떤 작업을 했는지 알려주세요! --> - 기존 Thymeleaf 기반의 프론트엔드 코드를 React + Typescript 기반으로 마이그레이션 - 프론트엔드 분리에 따른 인증 API 수정 및 회원가입 API 추가 ## 🧪 테스트 <!-- 어떤 테스트를 생각했고 진행했는지 알려주세요! --> - 새로 추가된 API, 변경된 API 테스트 반영 ## 📚 참고 자료 및 기타 <!-- 참고한 자료, 또는 논의할 사항이 있다면 알려주세요! --> 프론트엔드 코드는 Gemini CLI가 구현하였고, API 관련 코드(ee21782ef9, frontend/src/api/**) 만 직접 구성 Reviewed-on: #23 Co-authored-by: pricelees <priceelees@gmail.com> Co-committed-by: pricelees <priceelees@gmail.com>
57 lines
2.1 KiB
TypeScript
57 lines
2.1 KiB
TypeScript
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
|
|
import Layout from './components/Layout';
|
|
import HomePage from './pages/HomePage';
|
|
import LoginPage from './pages/LoginPage';
|
|
import SignupPage from './pages/SignupPage';
|
|
import ReservationPage from './pages/ReservationPage';
|
|
import MyReservationPage from './pages/MyReservationPage';
|
|
import AdminLayout from './pages/admin/AdminLayout';
|
|
import AdminPage from './pages/admin/AdminPage';
|
|
import AdminReservationPage from './pages/admin/ReservationPage';
|
|
import AdminTimePage from './pages/admin/TimePage';
|
|
import AdminThemePage from './pages/admin/ThemePage';
|
|
import AdminWaitingPage from './pages/admin/WaitingPage';
|
|
import { AuthProvider } from './context/AuthContext';
|
|
import AdminRoute from './components/AdminRoute';
|
|
|
|
const AdminRoutes = () => (
|
|
<AdminLayout>
|
|
<Routes>
|
|
<Route path="/" element={<AdminPage />} />
|
|
<Route path="/reservation" element={<AdminReservationPage />} />
|
|
<Route path="/time" element={<AdminTimePage />} />
|
|
<Route path="/theme" element={<AdminThemePage />} />
|
|
<Route path="/waiting" element={<AdminWaitingPage />} />
|
|
</Routes>
|
|
</AdminLayout>
|
|
);
|
|
|
|
function App() {
|
|
return (
|
|
<AuthProvider>
|
|
<Router>
|
|
<Routes>
|
|
<Route path="/admin/*" element={
|
|
<AdminRoute>
|
|
<AdminRoutes />
|
|
</AdminRoute>
|
|
} />
|
|
<Route path="/*" element={
|
|
<Layout>
|
|
<Routes>
|
|
<Route path="/" element={<HomePage />} />
|
|
<Route path="/login" element={<LoginPage />} />
|
|
<Route path="/signup" element={<SignupPage />} />
|
|
<Route path="/reservation" element={<ReservationPage />} />
|
|
<Route path="/reservation-mine" element={<MyReservationPage />} />
|
|
</Routes>
|
|
</Layout>
|
|
} />
|
|
</Routes>
|
|
</Router>
|
|
</AuthProvider>
|
|
);
|
|
}
|
|
|
|
export default App;
|