import { useStore } from "../store"; import { DofusIcon, GID_TO_ICON } from "./DofusIconWidget"; export default function HomeView({ needsSync, onSync }: { needsSync?: boolean; onSync?: () => void }) { const { guides, openGuide, profiles, activeProfileId, syncing } = useStore(); const activeProfile = profiles.find(p => p.id === activeProfileId); const totalQuests = guides.reduce((s, g) => s + g.total_quests, 0); const totalCompleted = guides.reduce((s, g) => s + g.completed_quests, 0); const globalPct = totalQuests > 0 ? Math.round((totalCompleted / totalQuests) * 100) : 0; const completedGuides = guides.filter(g => g.total_quests > 0 && g.completed_quests === g.total_quests); const inProgressGuides = guides.filter(g => g.completed_quests > 0 && g.completed_quests < g.total_quests); return (
{/* Header */}

Tougli — Guide Dofus

{activeProfile && (

Profil actif : {activeProfile.name}

)}
{/* First-time sync CTA */} {needsSync && (
Première utilisation

Aucun guide chargé. Synchronisez pour récupérer les données depuis Google Sheets.

)} {/* Global progress */} {guides.length > 0 && (
Progression globale {totalCompleted} / {totalQuests} quêtes ({globalPct}%)
)} {/* En cours */} {inProgressGuides.length > 0 && (
)} {/* Tous les guides */}
); } function Stat({ label, value, color }: { label: string; value: number; color: string }) { return (
{value} {label}
); } function Section({ title, guides, onOpen }: { title: string; guides: import("../types").GuideListItem[]; onOpen: (gid: string) => void; }) { return (

{title}

{guides.map(g => )}
); } function GuideCard({ guide, onOpen }: { guide: import("../types").GuideListItem; onOpen: (gid: string) => void; }) { const pct = guide.total_quests > 0 ? Math.round((guide.completed_quests / guide.total_quests) * 100) : 0; const isDone = pct === 100 && guide.total_quests > 0; const inProgress = guide.completed_quests > 0 && !isDone; const hasIcon = GID_TO_ICON[guide.gid] != null; const accentColor = isDone ? "#4ade80" : inProgress ? "#f0c040" : "#4a9eff"; const borderColor = isDone ? "rgba(74,222,128,0.25)" : "#2d3748"; return ( // Wrapper pour permettre à l'icône de déborder vers le haut
); }