offlineEfficiency() : 100% (0-15min) → 25% (1h) → 0% (2h). computeOfflineGains() intègre la courbe par tranches de 1min. GameState.lastOnline ajouté, store hydrate avec offline report. OfflineReport.tsx affiché au retour si absence > 60s. 13 nouveaux tests (66 total, tous passent).
34 lines
779 B
JavaScript
Executable File
34 lines
779 B
JavaScript
Executable File
import { useState } from "react";
|
|
import { Outlet } from "react-router-dom";
|
|
|
|
import Navbar from "./components/navbar";
|
|
import Footer from "./components/footer";
|
|
import { GameTick } from "./components/GameTick";
|
|
import { GameSync } from "./components/GameSync";
|
|
import { OfflineReport } from "./components/OfflineReport";
|
|
|
|
import navData from "./data/NavBarData.json";
|
|
|
|
function App() {
|
|
const [toggleRain, setToggleRain] = useState(false);
|
|
|
|
return (
|
|
<>
|
|
<GameTick />
|
|
<GameSync />
|
|
<OfflineReport />
|
|
<Navbar
|
|
navData={navData}
|
|
toggleRain={toggleRain}
|
|
setToggleRain={setToggleRain}
|
|
/>
|
|
<main>
|
|
<Outlet context={[toggleRain, setToggleRain]} />
|
|
</main>
|
|
<Footer />
|
|
</>
|
|
);
|
|
}
|
|
|
|
export default App;
|