Refactoring shortcuts and commandbar (#412)
* Begin refactoring shortcuts and commandbar * Continue refacto hotkeys * Remove debug logs * Add new story * Simplify hotkeys * Simplify hotkeys --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
30
front/src/modules/hotkeys/hooks/useDirectHotkeys.ts
Normal file
30
front/src/modules/hotkeys/hooks/useDirectHotkeys.ts
Normal file
@ -0,0 +1,30 @@
|
||||
import { useHotkeys } from 'react-hotkeys-hook';
|
||||
import {
|
||||
Hotkey,
|
||||
HotkeyCallback,
|
||||
OptionsOrDependencyArray,
|
||||
} from 'react-hotkeys-hook/dist/types';
|
||||
import { useRecoilState } from 'recoil';
|
||||
|
||||
import { pendingHotkeyState } from '../states/pendingHotkeysState';
|
||||
|
||||
export function useDirectHotkeys(
|
||||
keys: string,
|
||||
callback: HotkeyCallback,
|
||||
dependencies?: OptionsOrDependencyArray,
|
||||
) {
|
||||
const [pendingHotkey, setPendingHotkey] = useRecoilState(pendingHotkeyState);
|
||||
|
||||
const callbackIfDirectKey = function (
|
||||
keyboardEvent: KeyboardEvent,
|
||||
hotkeysEvent: Hotkey,
|
||||
) {
|
||||
if (!pendingHotkey) {
|
||||
callback(keyboardEvent, hotkeysEvent);
|
||||
return;
|
||||
}
|
||||
setPendingHotkey(null);
|
||||
};
|
||||
|
||||
useHotkeys(keys, callbackIfDirectKey, dependencies);
|
||||
}
|
||||
Reference in New Issue
Block a user