fix: better implement shortcuts

This commit is contained in:
MAZE 2024-10-13 21:32:58 +03:30
parent 14c331ab6e
commit e77c67bc24
2 changed files with 5 additions and 23 deletions

View file

@ -1,5 +1,6 @@
import { useCallback, useEffect } from 'react'; import { useCallback, useEffect } from 'react';
import { BiPause, BiPlay } from 'react-icons/bi/index'; import { BiPause, BiPlay } from 'react-icons/bi/index';
import { useHotkeys } from 'react-hotkeys-hook';
import { useSoundStore } from '@/stores/sound'; import { useSoundStore } from '@/stores/sound';
import { useSnackbar } from '@/contexts/snackbar'; import { useSnackbar } from '@/contexts/snackbar';
@ -28,17 +29,7 @@ export function PlayButton() {
if (isPlaying && noSelected) pause(); if (isPlaying && noSelected) pause();
}, [isPlaying, pause, noSelected]); }, [isPlaying, pause, noSelected]);
useEffect(() => { useHotkeys('shift+space', handleToggle, {}, [handleToggle]);
const listener = (e: KeyboardEvent) => {
if (e.shiftKey && e.key === ' ') {
handleToggle();
}
};
document.addEventListener('keydown', listener);
return () => document.removeEventListener('keydown', listener);
}, [handleToggle]);
return ( return (
<button <button

View file

@ -1,6 +1,7 @@
import { useEffect, useCallback } from 'react'; import { useCallback } from 'react';
import { BiUndo, BiTrash } from 'react-icons/bi/index'; import { BiUndo, BiTrash } from 'react-icons/bi/index';
import { AnimatePresence, motion } from 'framer-motion'; import { AnimatePresence, motion } from 'framer-motion';
import { useHotkeys } from 'react-hotkeys-hook';
import { Tooltip } from '@/components/tooltip'; import { Tooltip } from '@/components/tooltip';
@ -28,17 +29,7 @@ export function UnselectButton() {
else if (!noSelected) unselectAll(true); else if (!noSelected) unselectAll(true);
}, [hasHistory, noSelected, unselectAll, restoreHistory, locked]); }, [hasHistory, noSelected, unselectAll, restoreHistory, locked]);
useEffect(() => { useHotkeys('shift+r', handleToggle, {}, [handleToggle]);
const listener = (e: KeyboardEvent) => {
if (e.shiftKey && e.key === 'R') {
handleToggle();
}
};
document.addEventListener('keydown', listener);
return () => document.removeEventListener('keydown', listener);
}, [handleToggle]);
return ( return (
<> <>