Files
anatomia/frontend/src/App.tsx
T
Rodrigo Bertoldo de Sousa Martins f32833c023 mitose e meiose
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo@martinsevieira.adv.br>
2026-09-17 12:06:17 -03:00

33 lines
1.5 KiB
TypeScript

import { lazy, Suspense } from "react";
import { Route, Routes } from "react-router-dom";
import { Layout } from "./components/Layout.js";
// A página inicial (Atlas) já carrega o peso pesado de verdade (three.js +
// r3f + drei) — separar as OUTRAS rotas em chunks à parte só evita que
// quem abre o atlas baixe/parseie de graça o código do Quiz, de Planos e
// do painel interno de estatísticas antes mesmo de ver o modelo 3D.
import AtlasPage from "./routes/AtlasPage.js";
const PlanesPage = lazy(() => import("./routes/PlanesPage.js"));
const PhysicalExamPage = lazy(() => import("./routes/PhysicalExamPage.js"));
const CellDivisionPage = lazy(() => import("./routes/CellDivisionPage.js"));
const QuizPage = lazy(() => import("./routes/QuizPage.js"));
const AdminStatsPage = lazy(() => import("./routes/AdminStatsPage.js"));
export default function App() {
return (
<Suspense fallback={null}>
<Routes>
<Route element={<Layout />}>
<Route path="/" element={<AtlasPage />} />
<Route path="/planos-anatomicos" element={<PlanesPage />} />
<Route path="/exame-fisico" element={<PhysicalExamPage />} />
<Route path="/divisao-celular" element={<CellDivisionPage />} />
<Route path="/quiz" element={<QuizPage />} />
</Route>
{/* Fora do Layout: painel interno, sem o menu/nav do atlas. */}
<Route path="/estatisticas" element={<AdminStatsPage />} />
</Routes>
</Suspense>
);
}