- Landing.jsx : écran d'accueil "Entrer dans le Marais" sur / - Home.jsx : jeu sur /jeu, click animation float-up, sidebar responsive - formatNumber.ts : util partagé k/M/B/T (remplace 4 copies locales) - home.scss : rewrite classes (game-cover, click-zone, tadpole-sprite, game-sidebar) - Responsive : sidebar fixe desktop, drawer bottom mobile (<768px) - navbar : wildCoin → resource-counter, auth-nav stylé, dead code supprimé - GameSync.tsx : bridge useSaveSync ↔ Zustand (câblé dans App) - tadpole.svg : asset renommé (SantaClause-bag → tadpole) - deploy/ : Apache vhost SPA+proxy, deploy.sh, ecosystem.config.cjs PM2 - NavBarData : Jeu → /jeu - Cleanup : dead imports, commentaires legacy
40 lines
986 B
JavaScript
Executable File
40 lines
986 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 Hud from "./components/Hud/Hud";
|
|
import { GameTick } from "./components/GameTick";
|
|
import { GameSync } from "./components/GameSync";
|
|
|
|
import "./scss/root.scss";
|
|
import "./scss/components/footer.scss";
|
|
|
|
import navData from "./data/NavBarData.json";
|
|
|
|
function App() {
|
|
const [isVisible, setIsVisible] = useState(false);
|
|
const [toggleRain, setToggleRain] = useState(false);
|
|
|
|
return (
|
|
<>
|
|
<GameTick />
|
|
<GameSync />
|
|
<Navbar
|
|
navData={navData}
|
|
isVisible={isVisible}
|
|
setIsVisible={setIsVisible}
|
|
toggleRain={toggleRain}
|
|
setToggleRain={setToggleRain}
|
|
/>
|
|
<Hud isVisible={isVisible} setIsVisible={setIsVisible} />
|
|
<main>
|
|
<Outlet context={[toggleRain, setToggleRain]} />
|
|
</main>
|
|
<Footer />
|
|
</>
|
|
);
|
|
}
|
|
|
|
export default App;
|