/** * BgTaskRecoveryBanner.tsx — Banner di recovery per task backend in sospeso. * * Appare al boot se un task era ancora in esecuzione sul backend HF Space * quando il telefono si è spento. Mostra stato e permette di riaprire la chat. * Mobile-first, posizionato in fondo allo schermo sopra la chat bar. */ import { usePendingTaskRecovery } from "@/lib/usePendingTaskRecovery"; export default function BgTaskRecoveryBanner() { const { task, status, dismiss } = usePendingTaskRecovery(); if (!task || status === "idle" || status === "checking") return null; const config = { running: { bg: "bg-blue-600/90", icon: "⚡", label: "Task in esecuzione sul server", sub: "L'agente sta lavorando — riapri la chat per seguire i progressi", }, done: { bg: "bg-emerald-600/90", icon: "✅", label: "Task completato", sub: "L'agente ha finito mentre eri offline — riapri la chat per vedere il risultato", }, error: { bg: "bg-red-600/90", icon: "⚠️", label: "Task interrotto", sub: "Il task ha incontrato un errore — riapri la chat per i dettagli", }, not_found: null, } as const; const cfg = config[status as keyof typeof config]; if (!cfg) return null; return (
{cfg.icon}

{cfg.label}

{cfg.sub}

Goal: {task.goal}

); }