Files
ClickerZ/Frontend/src/pages/Achievements.jsx
Tetardtek b58d39e707 feat: migrate SCSS → Tailwind CSS + remove sass dependency
12 SCSS files (1167 lines) replaced by centralized index.css with
Tailwind v4 @theme tokens, @layer components, and utility classes.
Game panel design system (gp-*) preserved as CSS components.
Inline styles in Settings/Login/MilestoneBar converted to Tailwind utilities.
sass removed from dependencies. Build clean, 53 tests pass.
2026-03-28 11:19:45 +01:00

45 lines
1.4 KiB
JavaScript
Executable File

import { useGameStore } from "../store/useGameStore";
import { ACHIEVEMENTS } from "../data/achievements";
function Achievements() {
const state = useGameStore((s) => s.state);
const unlocked = ACHIEVEMENTS.filter((a) => a.check(state));
const locked = ACHIEVEMENTS.filter((a) => !a.check(state));
return (
<div className="fullachieve">
<h1>Succès</h1>
<p className="achieve-counter">
{unlocked.length} / {ACHIEVEMENTS.length}
</p>
<div className="achievementscontainer">
<div className="achievementscardcontainer">
{unlocked.map((a) => (
<div key={a.id} className="achieve-card achieve-unlocked">
<span className="achieve-icon">{a.icon}</span>
<div className="achieve-info">
<p className="achieve-name">{a.name}</p>
<p className="achieve-desc">{a.description}</p>
</div>
</div>
))}
{locked.map((a) => (
<div key={a.id} className="achieve-card achieve-locked">
<span className="achieve-icon">🔒</span>
<div className="achieve-info">
<p className="achieve-name">{a.name}</p>
<p className="achieve-desc">???</p>
</div>
</div>
))}
</div>
</div>
</div>
);
}
export default Achievements;