App.tsx 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import React from 'react'
  2. import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom'
  3. import { routes } from './config/routes'
  4. import { DEFAULT_LOCALE } from './shared/pageContext'
  5. import { LandingPage } from './pages/public/LandingPage'
  6. import { LoginPage } from './pages/public/LoginPage'
  7. import { DashboardPage } from './pages/dashboard/DashboardPage'
  8. import { CustomerListPage } from './pages/dashboard/customers/CustomerListPage'
  9. import { CustomerFormPage } from './pages/dashboard/customers/CustomerFormPage'
  10. import { CustomerDetailPage } from './pages/dashboard/customers/CustomerDetailPage'
  11. import { TemplateListPage } from './pages/dashboard/templates/TemplateListPage'
  12. import { TemplateFormPage } from './pages/dashboard/templates/TemplateFormPage'
  13. import { TemplateDetailPage } from './pages/dashboard/templates/TemplateDetailPage'
  14. import { StylistSimulationPage } from './pages/dashboard/simulation/StylistSimulationPage'
  15. import { SimulationResultPage } from './pages/dashboard/simulation/SimulationResultPage'
  16. import { SimulationEditPage } from './pages/dashboard/simulation/SimulationEditPage'
  17. import { AftercareResultPage } from './pages/dashboard/simulation/AftercareResultPage'
  18. import { StylistProfilePage } from './pages/customer/StylistProfilePage'
  19. import { CustomerSimulationPage } from './pages/customer/CustomerSimulationPage'
  20. import { RequireAuth } from './shared/RequireAuth'
  21. function App() {
  22. return (
  23. <BrowserRouter>
  24. <Routes>
  25. <Route path={routes.root} element={<Navigate to={`/${DEFAULT_LOCALE}`} replace />} />
  26. <Route path={routes.localeRoot} element={<LandingPage />} />
  27. <Route path={routes.login} element={<LoginPage />} />
  28. <Route path={routes.dashboard} element={<RequireAuth><DashboardPage /></RequireAuth>} />
  29. <Route path={routes.customers} element={<RequireAuth><CustomerListPage /></RequireAuth>} />
  30. <Route path={routes.customerNew} element={<RequireAuth><CustomerFormPage mode="new" /></RequireAuth>} />
  31. <Route path={routes.customerDetail} element={<RequireAuth><CustomerDetailPage /></RequireAuth>} />
  32. <Route path={routes.customerEdit} element={<RequireAuth><CustomerFormPage mode="edit" /></RequireAuth>} />
  33. <Route path={routes.templates} element={<RequireAuth><TemplateListPage /></RequireAuth>} />
  34. <Route path={routes.templateNew} element={<RequireAuth><TemplateFormPage /></RequireAuth>} />
  35. <Route path={routes.templateDetail} element={<RequireAuth><TemplateDetailPage /></RequireAuth>} />
  36. <Route path={routes.simulation} element={<RequireAuth><StylistSimulationPage /></RequireAuth>} />
  37. <Route path={routes.simulationResult} element={<RequireAuth><SimulationResultPage /></RequireAuth>} />
  38. <Route path={routes.simulationEdit} element={<RequireAuth><SimulationEditPage /></RequireAuth>} />
  39. <Route path={routes.simulationAftercare} element={<RequireAuth><AftercareResultPage /></RequireAuth>} />
  40. <Route path={routes.profile} element={<StylistProfilePage />} />
  41. <Route path={routes.customerSimulation} element={<CustomerSimulationPage />} />
  42. <Route path="*" element={<Navigate to={`/${DEFAULT_LOCALE}`} replace />} />
  43. </Routes>
  44. </BrowserRouter>
  45. )
  46. }
  47. export default App