ai tools finished
This commit is contained in:
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user