Expirări
{isLoading ? 'Se încarcă…' : `${totalExpiring} expirări în 90 zile${critical > 0 ? ` · ${critical} critice` : ''}`}
{!isLoading && totalExpiring === 0 && (
✅
Nicio expirare în următoarele 90 zile.
)}
{!isLoading && totalExpiring > 0 && (
<>
{/* Summary chips */}
{[
{ label: 'Azi–7 zile', count: expiringDocs.filter((d) => daysUntil(d.expiresAt!) <= 7).length + expiringContracts.filter((c) => daysUntil(c.endDate!) <= 7).length, cls: 'text-signal-danger bg-signal-danger/5 border-signal-danger/20' },
{ label: '8–30 zile', count: expiringDocs.filter((d) => { const n = daysUntil(d.expiresAt!); return n > 7 && n <= 30; }).length + expiringContracts.filter((c) => { const n = daysUntil(c.endDate!); return n > 7 && n <= 30; }).length, cls: 'text-signal-warn bg-signal-warn/5 border-signal-warn/20' },
{ label: '31–90 zile', count: expiringDocs.filter((d) => daysUntil(d.expiresAt!) > 30).length + expiringContracts.filter((c) => daysUntil(c.endDate!) > 30).length, cls: 'text-ink-faint bg-muted/30 border-border/50' },
].map(({ label, count, cls }) => count > 0 ? (
) : null)}
{/* Expiring contracts */}
{expiringContracts.length > 0 && (
Contracte
Administrează →
{expiringContracts.map((c) => {
const days = daysUntil(c.endDate!);
return (
{c.title}
{c.contractType}
);
})}
)}
{/* Expiring documents */}
{expiringDocs.length > 0 && (
Documente
Bibliotecă →
{expiringDocs.map((d) => {
const days = daysUntil(d.expiresAt!);
return (
{d.filename}
{d.classification}
{d.expiresAt?.slice(0, 10)}
);
})}
)}
>
)}
);
}