mirror of
https://github.com/lux-tel/session-desktop.git
synced 2026-10-30 20:33:24 +00:00
23 lines
620 B
TypeScript
23 lines
620 B
TypeScript
import useKey from 'react-use/lib/useKey';
|
|
import { isDevProd } from '../shared/env_vars';
|
|
|
|
export type UseDebugKeyArgs = {
|
|
key: KeyboardEvent['key'];
|
|
withCtrl?: boolean;
|
|
callback: () => void;
|
|
};
|
|
|
|
export function useDebugKey({ callback, key, withCtrl }: UseDebugKeyArgs) {
|
|
if (!isDevProd()) {
|
|
return;
|
|
}
|
|
|
|
// eslint-disable-next-line react-hooks/rules-of-hooks -- isDevProd is static during runtime, we can conditionally mount this hook.
|
|
useKey((event: KeyboardEvent) => {
|
|
if (withCtrl && !(event.ctrlKey || event.metaKey)) {
|
|
return false;
|
|
}
|
|
return event.key === key;
|
|
}, callback);
|
|
}
|