import { formatTime, formatLongTime } from '@/lib/timeUtils'; import '../styles/ClipSegments.css'; export interface Segment { id: number; chapterTitle: string; startTime: number; endTime: number; } interface ClipSegmentsProps { segments: Segment[]; selectedSegmentId?: number | null; } const ClipSegments = ({ segments, selectedSegmentId }: ClipSegmentsProps) => { // Sort segments by startTime const sortedSegments = [...segments].sort((a, b) => a.startTime - b.startTime); // Handle delete segment click const handleDeleteSegment = (segmentId: number) => { // Create and dispatch the delete event const deleteEvent = new CustomEvent('delete-segment', { detail: { segmentId }, }); document.dispatchEvent(deleteEvent); }; // Generate the same color background for a segment as shown in the timeline const getSegmentColorClass = (index: number) => { // Return CSS class based on index modulo 8 // This matches the CSS nth-child selectors in the timeline return `segment-default-color segment-color-${(index % 8) + 1}`; }; // Get selected segment const selectedSegment = sortedSegments.find((seg) => seg.id === selectedSegmentId); return (