ai tools finished

This commit is contained in:
2026-04-15 17:13:56 -06:00
parent d11e26cf2d
commit 024b9bd806
17 changed files with 566 additions and 328 deletions

View File

@ -150,7 +150,6 @@ export default function WaveformTimeline({
const [selectionStart, setSelectionStart] = useState<number | null>(null);
const [selectionEnd, setSelectionEnd] = useState<number | null>(null);
const [selectedZone, setSelectedZone] = useState<{type: 'cut' | 'mute' | 'gain', id: string} | null>(null);
const [editingZone, setEditingZone] = useState<{type: 'cut' | 'mute' | 'gain', id: string, edge: 'start' | 'end' | 'move'} | null>(null);
const [hoverCursor, setHoverCursor] = useState<string>('crosshair');
const editingZoneRef = useRef<{type: 'cut' | 'mute' | 'gain', id: string, edge: 'start' | 'end' | 'move'} | null>(null);
const [showCutZones, setShowCutZones] = useState(true);
@ -210,7 +209,7 @@ export default function WaveformTimeline({
);
if (cancelled) return;
waveformDataRef.current = waveformData;
drawStaticWaveform();
drawStaticWaveformRef.current();
} catch (err) {
if (cancelled || (err instanceof DOMException && err.name === 'AbortError')) {
console.log('[WaveformTimeline] req=', requestId, 'aborted/cancelled');
@ -594,7 +593,6 @@ export default function WaveformTimeline({
// Check if click is in waveform area
if (y < waveTop || y > waveTop + waveH) return null;
const clickTime = scroll + x / pxPerSec;
const handleSize = forHover ? 6 : 8; // Smaller hit area for hover, larger for click
// Check cut ranges
@ -743,7 +741,6 @@ export default function WaveformTimeline({
setSelectedZone({ type: zoneHit.type, id: zoneHit.id });
} else {
setSelectedZone({ type: zoneHit.type, id: zoneHit.id });
setEditingZone(zoneHit);
editingZoneRef.current = zoneHit;
}
isDraggingRef.current = true;
@ -795,7 +792,6 @@ export default function WaveformTimeline({
const onUp = () => {
isDraggingRef.current = false;
setIsDragging(false);
setEditingZone(null);
editingZoneRef.current = null;
window.removeEventListener('mousemove', onMove);
window.removeEventListener('mouseup', onUp);
@ -808,7 +804,6 @@ export default function WaveformTimeline({
// Clear selection if clicking elsewhere
setSelectedZone(null);
setEditingZone(null);
if (cutMode || muteMode || gainMode) {
// Range selection mode
@ -886,7 +881,6 @@ export default function WaveformTimeline({
if (e.key === 'Escape') {
setSelectedZone(null);
setEditingZone(null);
editingZoneRef.current = null;
} else if (e.key === 'Delete' || e.key === 'Backspace') {
if (selectedZone) {
@ -901,7 +895,6 @@ export default function WaveformTimeline({
removeGainRange(selectedZone.id);
}
setSelectedZone(null);
setEditingZone(null);
editingZoneRef.current = null;
}
}