import { Clock, PauseCircle, Hourglass } from 'lucide-react'; import { format, formatDistanceToNow, isPast, addSeconds } from 'date-fns'; import { es } from 'date-fns/locale'; interface ExecutionCardProps { ultimaEjecucion: string | null | undefined; proximaEjecucion: string | null | undefined; enEjecucion: boolean; } export default function ExecutionCard({ ultimaEjecucion, proximaEjecucion, enEjecucion }: ExecutionCardProps) { const formatDate = (dateString: string) => { return format(new Date(dateString), "dd/MM, HH:mm", { locale: es }); // Formato más corto }; const formatRelative = (dateString: string) => { return formatDistanceToNow(new Date(dateString), { addSuffix: true, locale: es }); }; const isOverdue = proximaEjecucion ? isPast(addSeconds(new Date(proximaEjecucion), -10)) : false; return (
{/* Barra de estado */}
{/* Padding reducido a p-4 */} {/* Encabezado Compacto */}
{/* Margin reducido */}
Sincronización
{enEjecucion ? 'AUTO' : 'MANUAL'}
{/* Espaciado reducido a space-y-4 */} {/* ÚLTIMA EJECUCIÓN */}

Última

{ultimaEjecucion ? (

{formatRelative(ultimaEjecucion)}

{formatDate(ultimaEjecucion)}

) : (

--

)}
{/* PRÓXIMA EJECUCIÓN */}

Próxima

{enEjecucion && proximaEjecucion ? (
{isOverdue ? (

En cola...

) : (

{formatDate(proximaEjecucion)} hs

aprox. {formatRelative(proximaEjecucion)}

)}
) : (
Detenido
)}
); }