import React, { useState, useEffect } from 'react'; import { InformationCircleIcon } from '@heroicons/react/24/outline'; import { useTranscriptionStore } from '../stores/transcriptionStore'; import { formatTime } from '../utils/subtitleUtils'; const DEFAULT_MERGE_THRESHOLD = 2; const MediaEditControls: React.FC = () => { const [mergeThreshold, setMergeThreshold] = useState(DEFAULT_MERGE_THRESHOLD); const { transcription, currentTime, activeSegmentIndex, currentSegments, undo, redo, canUndo, canRedo, mergeSegmentsByProximity, } = useTranscriptionStore(); const MAX_MERGE_INTERVAL_SECONDS = 30; if (!transcription) { return null; } const displaySegments = currentSegments || transcription.aligned_segments; // Handle merge threshold changes useEffect(() => { mergeSegmentsByProximity(mergeThreshold); }, [mergeThreshold, mergeSegmentsByProximity]); // Keyboard shortcuts for undo/redo useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { if ((e.ctrlKey || e.metaKey) && e.key === 'z' && !e.shiftKey) { e.preventDefault(); undo(); } else if ((e.ctrlKey || e.metaKey) && (e.key === 'y' || (e.key === 'z' && e.shiftKey))) { e.preventDefault(); redo(); } }; document.addEventListener('keydown', handleKeyDown); return () => document.removeEventListener('keydown', handleKeyDown); }, [undo, redo]); return (