Files
ClickerZ/Frontend/src/components/Hud/Hud.jsx
Tetardtek 307feb711f feat(sprint1-step5): migration Tailwind v4 + Zustand — suppression WildCoinContext
- Install tailwindcss @tailwindcss/vite zustand
- useGameStore.ts : Zustand store wrappant economy.ts (tick, click, buy, prestige, buyNode, loadFromServer)
- GameTick.tsx : composant timer 1s
- GeneratorShop.tsx : boutique générateurs Tailwind (remplace Amelioration.jsx)
- EvolutionTree, PrestigePanel, MilestoneBar : rewrite Zustand + Tailwind
- Hud.jsx : rewrite Zustand + Tailwind (suppression Hud.scss)
- BoutiqueCard, Achievements : migrés vers Zustand
- Supprimé : WildCoin/ (4 fichiers), timer/Timer.jsx, useEconomy.ts, Hud.scss
- WildCoinProvider retiré de main.jsx
2026-03-20 13:40:51 +01:00

44 lines
1.6 KiB
JavaScript
Executable File

// Hud.jsx — Stats HUD (Zustand)
import { useGameStore } from "../../store/useGameStore";
import { formatNumber } from "../../utils/formatNumber";
const formatTime = (time) => {
const hours = Math.floor(time / 3600);
const minutes = Math.floor((time % 3600) / 60);
const secs = time % 60;
return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}:${String(secs).padStart(2, "0")}`;
};
function Hud({ isVisible }) {
const resources = useGameStore((s) => s.state.resources);
const clickMultiplier = useGameStore((s) => s.state.clickMultiplier);
const productionPerSecond = useGameStore((s) => s.productionPerSecond);
const playSeconds = useGameStore((s) => s.playSeconds);
if (isVisible) return null;
return (
<div className="fixed top-20 left-1/2 -translate-x-1/2 z-10 flex flex-col items-center gap-2 px-6 py-3 rounded-xl bg-gray-900/90 backdrop-blur-sm text-white font-[var(--font)]">
<div className="flex gap-6 text-sm">
<div className="flex flex-col items-center">
<span className="text-gray-400 text-xs">Temps</span>
<span>{formatTime(playSeconds)}</span>
</div>
<div className="flex flex-col items-center">
<span className="text-gray-400 text-xs">Têtards/s</span>
<span>{formatNumber(productionPerSecond)}</span>
</div>
<div className="flex flex-col items-center">
<span className="text-gray-400 text-xs">Ponte</span>
<span>{clickMultiplier}</span>
</div>
</div>
<div className="text-lg font-bold text-emerald-400">
{formatNumber(resources)}
</div>
</div>
);
}
export default Hud;