import { format } from "date-fns"; import { buildSegments, segmentStyle, type DayMetrics } from "../../planner/timeline"; interface PlannerTimelineRowProps { days: DayMetrics[]; dayDates: Date[]; showTentative: boolean; titlePrefix?: string; onClick?: (dayIndex: number, day: Date) => void; } export function PlannerTimelineRow({ days, dayDates, showTentative, titlePrefix, onClick, }: PlannerTimelineRowProps) { const totalDays = dayDates.length; const segments = buildSegments(days, showTentative); return (
{segments.map((segment, index) => { const startDay = dayDates[segment.startIndex]; const endDay = dayDates[segment.endIndex]; const rangeLabel = segment.startIndex === segment.endIndex ? format(startDay, "MMM d") : `${format(startDay, "MMM d")} – ${format(endDay, "MMM d")}`; const title = titlePrefix ? `${titlePrefix} • ${rangeLabel} → ${segment.tone.label}` : `${rangeLabel} → ${segment.tone.label}`; return (
onClick(segment.startIndex, dayDates[segment.startIndex]) : undefined } onKeyDown={undefined} role={onClick ? "button" : undefined} style={segmentStyle(segment, totalDays)} tabIndex={onClick ? 0 : undefined} title={title} > {segment.tone.label ? {segment.tone.label} : null}
); })}
); }