'use client'; import { useEffect, useState } from 'react'; import Link from 'next/link'; import { CheckCircle2, Clock } from 'lucide-react'; import { db } from '@/lib/queue/db'; import { subscribeBroadcast } from '@/lib/queue/broadcast'; export function SentStatus({ cid }: { cid: string }) { const [inQueue, setInQueue] = useState(null); // null = loading useEffect(() => { async function check() { const item = await db.pending.get(cid); setInQueue(!!item); } check(); const unsub = subscribeBroadcast((msg) => { if (msg.type === 'synced' && msg.clientRequestId === cid) setInQueue(false); if (msg.type === 'dead-letter' && msg.clientRequestId === cid) setInQueue(false); }); return unsub; }, [cid]); const pending = inQueue === true; return (
{pending ? ( ) : ( )}

{pending ? 'Pedido em fila' : 'Pedido enviado'}

{cid && (

{cid}

)}

{pending ? 'Será enviado assim que a ligação for restabelecida.' : 'A equipa de manutenção foi notificada e irá tratar do problema.'}

Voltar ao início
); }