delete key can remove zones

This commit is contained in:
2026-04-03 11:38:58 -06:00
parent 0237d685e5
commit 8a7c94d594
2 changed files with 24 additions and 6 deletions

View File

@ -695,6 +695,11 @@ export default function WaveformTimeline({ cutMode, muteMode }: { cutMode: boole
// Handle keyboard shortcuts for zone editing
useEffect(() => {
const handleKeyDown = (e: KeyboardEvent) => {
const target = e.target as HTMLElement | null;
if (target && (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.tagName === 'SELECT')) {
return;
}
if (e.key === 'Escape') {
setSelectedZone(null);
setEditingZone(null);
@ -702,6 +707,8 @@ export default function WaveformTimeline({ cutMode, muteMode }: { cutMode: boole
} else if (e.key === 'Delete' || e.key === 'Backspace') {
if (selectedZone) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
if (selectedZone.type === 'cut') {
removeCutRange(selectedZone.id);
} else {
@ -714,8 +721,9 @@ export default function WaveformTimeline({ cutMode, muteMode }: { cutMode: boole
}
};
window.addEventListener('keydown', handleKeyDown);
return () => window.removeEventListener('keydown', handleKeyDown);
// Capture phase ensures zone delete runs before app-level bubble shortcuts.
window.addEventListener('keydown', handleKeyDown, { capture: true });
return () => window.removeEventListener('keydown', handleKeyDown, { capture: true });
}, [selectedZone, removeCutRange, removeMuteRange]);
if (!videoUrl) {