interface SegmentedProgressBarProps { totalSegments: number; currentIndex: number; segmentProgress: number; onSeek: (ratio: number) => void; } export function SegmentedProgressBar({ totalSegments, currentIndex, segmentProgress, onSeek, }: SegmentedProgressBarProps) { return (
{ const rect = (e.currentTarget as HTMLElement).getBoundingClientRect(); onSeek((e.clientX - rect.left) / rect.width); }} >
{Array.from({ length: totalSegments }).map((_, i) => { let fill = 0; if (i < currentIndex) fill = 1; else if (i === currentIndex) fill = segmentProgress; return (
); })}
); }