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 (
);
})}
);
}