import React from 'react'; import { Tooltip, TooltipContent, TooltipTrigger } from '@renderer/components/ui/tooltip'; import { Clock } from 'lucide-react'; import { RunStatusBadge } from './ScheduleStatusBadge'; import type { ScheduleRun } from '@shared/types'; // ============================================================================= // Props // ============================================================================= interface ScheduleRunRowProps { run: ScheduleRun; onClick?: (run: ScheduleRun) => void; } // ============================================================================= // Helpers // ============================================================================= function formatDuration(ms: number): string { if (ms < 1000) return `${ms}ms`; const seconds = Math.floor(ms / 1000); if (seconds < 60) return `${seconds}s`; const minutes = Math.floor(seconds / 60); const remainingSeconds = seconds % 60; if (minutes < 60) return `${minutes}m ${remainingSeconds}s`; const hours = Math.floor(minutes / 60); const remainingMinutes = minutes % 60; return `${hours}h ${remainingMinutes}m`; } function formatTime(isoString: string): string { try { return new Date(isoString).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', hour12: false, }); } catch { return isoString; } } // ============================================================================= // Component // ============================================================================= export const ScheduleRunRow = ({ run, onClick }: ScheduleRunRowProps): React.JSX.Element => (
{run.summary.slice(0, 500)}
{run.error.slice(0, 500)}