feat(sprint1-step6): polish, landing page, responsive, deploy config
- 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
This commit is contained in:
@@ -6,7 +6,8 @@ import "../scss/root.scss";
|
||||
|
||||
import PrimaryButton from "./buttons/PrimaryButton";
|
||||
import Burger from "./burger";
|
||||
import { useWildCoin } from "./WildCoin/WildCoinContext";
|
||||
import { useGameStore } from "../store/useGameStore";
|
||||
import { useAuth } from "../context/AuthContext";
|
||||
import HUDON from "../../public/NavBar/HUDON.svg";
|
||||
import HUDOFF from "../../public/NavBar/HUDOFF.svg";
|
||||
import SnowOn from "../../public/NavBar/SnowOn.svg";
|
||||
@@ -17,24 +18,20 @@ export default function Navbar({
|
||||
navData,
|
||||
isVisible,
|
||||
setIsVisible,
|
||||
toggleSnow,
|
||||
setToggleSnow,
|
||||
toggleRain,
|
||||
setToggleRain,
|
||||
}) {
|
||||
Navbar.propTypes = {
|
||||
isVisible: PropTypes.bool,
|
||||
setIsVisible: PropTypes.function,
|
||||
setToggleSnow: PropTypes.function,
|
||||
toggleSnow: PropTypes.bool,
|
||||
setToggleRain: PropTypes.function,
|
||||
toggleRain: PropTypes.bool,
|
||||
}.isRequired;
|
||||
|
||||
const { wildCoin } = useWildCoin();
|
||||
const resources = useGameStore((s) => s.state.resources);
|
||||
const { user, logout } = useAuth();
|
||||
const [imageSrc, setImageSrc] = useState(HUDON);
|
||||
const [snowImageSrc, setSnowImageSrc] = useState(SnowOff);
|
||||
const [timerVisible, setTimerVisible] = useState(false);
|
||||
const handleClickWildCoin = () => {
|
||||
setTimerVisible(true);
|
||||
};
|
||||
|
||||
const toggleHud = () => {
|
||||
if (!isVisible) {
|
||||
setIsVisible(true);
|
||||
@@ -44,12 +41,12 @@ export default function Navbar({
|
||||
setImageSrc(HUDON);
|
||||
}
|
||||
};
|
||||
function toggleSnowBtn() {
|
||||
if (toggleSnow === false) {
|
||||
setToggleSnow(true);
|
||||
function toggleRainBtn() {
|
||||
if (toggleRain === false) {
|
||||
setToggleRain(true);
|
||||
setSnowImageSrc(SnowOn);
|
||||
} else {
|
||||
setToggleSnow(false);
|
||||
setToggleRain(false);
|
||||
setSnowImageSrc(SnowOff);
|
||||
}
|
||||
}
|
||||
@@ -59,11 +56,11 @@ export default function Navbar({
|
||||
className="logo"
|
||||
to="/"
|
||||
aria-label="Retourner à la page d'accueil"
|
||||
title="Logo XmassClick"
|
||||
title="Logo Clickerz"
|
||||
/>
|
||||
<div className="navbar">
|
||||
<div className="wildCoin">
|
||||
{new Intl.NumberFormat().format(wildCoin)}
|
||||
<div className="resource-counter">
|
||||
{new Intl.NumberFormat().format(Math.floor(resources))}
|
||||
</div>
|
||||
<ul className="nav-list">
|
||||
{navData.map((navIndex) => {
|
||||
@@ -104,6 +101,18 @@ export default function Navbar({
|
||||
);
|
||||
})}
|
||||
</ul>
|
||||
{user ? (
|
||||
<div className="auth-nav">
|
||||
<span className="auth-nickname">{user.nickname}</span>
|
||||
<button className="auth-btn" onClick={logout} type="button">
|
||||
Déconnexion
|
||||
</button>
|
||||
</div>
|
||||
) : (
|
||||
<Link className="mainLink" to="/login">
|
||||
Connexion
|
||||
</Link>
|
||||
)}
|
||||
<img
|
||||
onClick={() => toggleHud()}
|
||||
src={imageSrc}
|
||||
@@ -111,7 +120,7 @@ export default function Navbar({
|
||||
alt="boutton on"
|
||||
/>
|
||||
<img
|
||||
onClick={() => toggleSnowBtn()}
|
||||
onClick={() => toggleRainBtn()}
|
||||
src={snowImageSrc}
|
||||
style={{ height: "28px" }}
|
||||
alt="boutton on"
|
||||
|
||||
Reference in New Issue
Block a user