delete key can remove zones
This commit is contained in:
@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user