Resolved conflicts in App.tsx/SeancePage.tsx (both F and H added new routes/nav links, kept both) and i18n files (both added sibling top-level keys — inventory + devices, fixed nesting after conflict markers removed). Also fixed a real integration gap: DevicesPage.test.tsx's mock User object predated Workstream F's unlocks/essence additions to the User type (the two workstreams built in parallel isolation and couldn't see each other's changes). 269/269 frontend tests pass, tsc clean.
44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
// App shell: router + providers + the global CRT overlay (scanlines/vignette)
|
|
// that sits above every page like old glass.
|
|
|
|
import { BrowserRouter, Route, Routes } from 'react-router-dom'
|
|
import { AuthProvider } from './state/auth'
|
|
import { HauntingLayer } from './components/HauntingLayer'
|
|
import { GhostLog } from './components/GhostLog'
|
|
import { CodexEntityPage } from './pages/CodexEntityPage'
|
|
import { CodexPage } from './pages/CodexPage'
|
|
import { DevicesPage } from './pages/DevicesPage'
|
|
import { EnterPage } from './pages/EnterPage'
|
|
import { InventoryPage } from './pages/InventoryPage'
|
|
import { LandingPage } from './pages/LandingPage'
|
|
import { SeancePage } from './pages/SeancePage'
|
|
import { ShopPage } from './pages/ShopPage'
|
|
|
|
function App() {
|
|
return (
|
|
<AuthProvider>
|
|
<BrowserRouter>
|
|
<div className="crt-overlay" aria-hidden="true">
|
|
<div className="crt-scanlines" />
|
|
<div className="crt-vignette" />
|
|
</div>
|
|
<HauntingLayer />
|
|
<GhostLog />
|
|
<Routes>
|
|
<Route path="/" element={<LandingPage />} />
|
|
<Route path="/enter" element={<EnterPage />} />
|
|
<Route path="/seance" element={<SeancePage />} />
|
|
<Route path="/codex" element={<CodexPage />} />
|
|
<Route path="/codex/:id" element={<CodexEntityPage />} />
|
|
<Route path="/shop" element={<ShopPage />} />
|
|
<Route path="/inventory" element={<InventoryPage />} />
|
|
<Route path="/devices" element={<DevicesPage />} />
|
|
<Route path="*" element={<LandingPage />} />
|
|
</Routes>
|
|
</BrowserRouter>
|
|
</AuthProvider>
|
|
)
|
|
}
|
|
|
|
export default App
|