"use client"; import { useState } from "react"; import { ApproveButton } from "@/components/client/ApproveButton"; import { useChatContext } from "@/components/client/ChatProvider"; import type { ClientView } from "@/lib/client-view"; import { TASK_STATUS_LABELS, type TaskStatus } from "@/lib/task-status"; type Phase = ClientView["phases"][number]; const phaseStatusLabel: Record<"upcoming" | "active" | "done", string> = { upcoming: "Da iniziare", active: "In corso", done: "Completata", }; // Soft-tint status pill — replica del mock ("Quiet Luxury") const phaseStatusStyle: Record<"upcoming" | "active" | "done", string> = { upcoming: "bg-muted text-muted-foreground border border-border", active: "bg-amber-50 text-amber-700 border border-amber-100 dark:bg-amber-500/10 dark:text-amber-400 dark:border-amber-500/20", done: "bg-emerald-50 text-emerald-700 border border-emerald-100 dark:bg-emerald-500/10 dark:text-emerald-400 dark:border-emerald-500/20", }; // Colore della barra di avanzamento per stato fase const phaseBarColor: Record<"upcoming" | "active" | "done", string> = { upcoming: "bg-border", active: "bg-amber-500", done: "bg-emerald-600", }; function TaskStatusIcon({ status }: { status: TaskStatus }) { if (status === "done") { return ( ✓ ); } if (status === "in_review") { return ( ); } if (status === "in_progress") { return ( ); } return ( ); } export function PhaseCard({ phase, token, defaultOpen, }: { phase: Phase; token: string; defaultOpen: boolean; }) { const [open, setOpen] = useState(defaultOpen); const { openChat } = useChatContext(); const doneCount = phase.tasks.filter((t) => t.status === "done").length; return (
Nessun task ancora configurato.
) : ({task.title}
{task.description && ({task.description}
)} {task.deliverables.length > 0 && (