import { formatTime, formatLongTime } from '@/lib/timeUtils'; import '../styles/ClipSegments.css'; export interface Segment { id: number; name: string; startTime: number; endTime: number; thumbnail: string; } interface ClipSegmentsProps { segments: Segment[]; } const ClipSegments = ({ segments }: 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 20 // This matches the CSS classes for up to 20 segments return `segment-default-color segment-color-${(index % 20) + 1}`; }; return (

Clip Segments

{sortedSegments.map((segment, index) => (
Segment {index + 1}
{formatTime(segment.startTime)} - {formatTime(segment.endTime)}
Duration: {formatLongTime(segment.endTime - segment.startTime)}
))} {sortedSegments.length === 0 && (
No segments created yet. Use the split button to create segments.
)}
); }; export default ClipSegments;