import { Routes, Route, Navigate } from 'react-router-dom'; import { Layout } from './components/Layout'; import { RequireAuth } from './components/RequireAuth'; import { ToastProvider } from './components/Toast'; import { Login } from './pages/Login'; import { Dashboard } from './pages/Dashboard'; import { Moderation } from './pages/Moderation'; import { Activity } from './pages/Activity'; import { Rooms } from './pages/Rooms'; import { Room } from './pages/Room'; import { ImportRoom } from './pages/ImportRoom'; import { LegacyImportRoom } from './pages/LegacyImportRoom'; import { Store } from './pages/Store'; import { Broadcast } from './pages/Broadcast'; import { Content } from './pages/Content'; import { SettingsHome } from './pages/SettingsHome'; export default function App() { return ( } /> }> } /> {/* Players hub — directory + bans + reports as tabs. The old standalone routes redirect in with the matching sub-tab preselected. Per-player ban / grant / gift / password actions all live in the row's detail modal. */} } /> } /> } /> } /> } /> } /> {/* Activity hub — audit trail + per-player request logs. */} } /> } /> } /> } /> } /> {/* Back-compat: the merge left RR-Originals / Instances / Leaderboards / old per-room pages folded into /rooms and /rooms/:id (leaderboards tab inside the per-room view). Anyone with a stale bookmark hitting those old paths lands back on the unified rooms list. */} } /> } /> } /> } /> } /> } /> {/* Content hub — community board + loading-screen tips. */} } /> } /> } /> } /> {/* Settings hub — server toggles + signup codes. */} } /> } /> } /> ); }