'use client'; import { format } from 'date-fns'; import { fr } from 'date-fns/locale'; import { TagDisplay } from '@/components/ui/TagDisplay'; import { PriorityBadge } from '@/components/ui/PriorityBadge'; import { Tag } from '@/lib/types'; export interface AchievementData { id: string; title: string; description?: string; impact: 'low' | 'medium' | 'high'; completedAt: Date; updatedAt: Date; tags?: string[]; todosCount?: number; } interface AchievementCardProps { achievement: AchievementData; availableTags: (Tag & { usage: number })[]; index: number; showDescription?: boolean; maxTags?: number; className?: string; } export function AchievementCard({ achievement, availableTags, index, showDescription = true, maxTags = 2, className = '' }: AchievementCardProps) { return (
{/* Barre colorée gauche */}
{/* Header compact */}
#{index + 1}
Terminé: {format(achievement.completedAt, 'dd/MM', { locale: fr })}
{achievement.updatedAt && achievement.updatedAt.getTime() !== achievement.completedAt.getTime() && (
Mis à jour: {format(achievement.updatedAt, 'dd/MM', { locale: fr })}
)}
{/* Titre */}

{achievement.title}

{/* Tags */} {achievement.tags && achievement.tags.length > 0 && (
)} {/* Description si disponible */} {showDescription && achievement.description && (

{achievement.description}

)} {/* Count de todos */} {achievement.todosCount !== undefined && achievement.todosCount > 0 && (
📋 {achievement.todosCount} todo{achievement.todosCount > 1 ? 's' : ''}
)}
); }