import { lazy, Suspense } from 'react'; import { Routes, Route } from 'react-router-dom'; import { AuthProvider } from './contexts/AuthContext'; import { ProtectedRoute } from './components/shared/ProtectedRoute'; import { PublicLayout } from './components/layout/PublicLayout'; import { IntranetLayout } from './components/layout/IntranetLayout'; import { PageLoader } from './components/shared/PageLoader'; // ── Public Pages (lazy-loaded) ──────────────────────────────────────────────── const HomePage = lazy(() => import('./pages/public/HomePage')); const StudioPage = lazy(() => import('./pages/public/StudioPage')); const EventsPage = lazy(() => import('./pages/public/EventsPage')); const ForumPage = lazy(() => import('./pages/public/ForumPage')); const ThreadPage = lazy(() => import('./pages/public/ThreadPage')); const BugReportPage = lazy(() => import('./pages/public/BugReportPage')); const BugDetailPage = lazy(() => import('./pages/public/BugDetailPage')); const AccountPage = lazy(() => import('./pages/public/AccountPage')); const LoginPage = lazy(() => import('./pages/public/LoginPage')); const RegisterPage = lazy(() => import('./pages/public/RegisterPage')); const NotFoundPage = lazy(() => import('./pages/public/NotFoundPage')); // ── Intranet Pages (lazy-loaded) ────────────────────────────────────────────── const IntranetDashboard = lazy(() => import('./pages/intranet/IntranetDashboard')); const IntranetBugs = lazy(() => import('./pages/intranet/IntranetBugs')); const IntranetFeed = lazy(() => import('./pages/intranet/IntranetFeed')); const IntranetEvents = lazy(() => import('./pages/intranet/IntranetEvents')); const IntranetUsers = lazy(() => import('./pages/intranet/IntranetUsers')); const IntranetModeration = lazy(() => import('./pages/intranet/IntranetModeration')); // ── App ──────────────────────────────────────────────────────────────────────── export default function App() { return ( }> {/* Public Routes */} }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Intranet Routes — staff only */} } > } /> } /> } /> } /> } /> } /> ); }