MCPcopy Create free account
hub / github.com/Linen-dev/linen.dev / useKeyboard

Function useKeyboard

apps/web/hooks/keyboard.tsx:8–37  ·  view source on GitHub ↗
(
  { onKeyUp, onKeyDown }: Props = {},
  dependencies?: any
)

Source from the content-addressed store, hash-verified

6}
7
8export default function useKeyboard(
9 { onKeyUp, onKeyDown }: Props = {},
10 dependencies?: any
11) {
12 const [isShiftPressed, setShiftPressed] = useState(false);
13
14 const handleKeyUp = (event: KeyboardEvent) => {
15 onKeyUp?.(event);
16 setShiftPressed(event.shiftKey);
17 return true;
18 };
19
20 const handleKeyDown = (event: KeyboardEvent) => {
21 onKeyDown?.(event);
22 setShiftPressed(event.shiftKey);
23 return true;
24 };
25
26 useEffect(() => {
27 document.addEventListener('keyup', handleKeyUp);
28 document.addEventListener('keydown', handleKeyDown);
29
30 return () => {
31 document.removeEventListener('keyup', handleKeyUp);
32 document.removeEventListener('keydown', handleKeyDown);
33 };
34 }, dependencies || []);
35
36 return { isShiftPressed };
37}

Callers 4

ImagePreviewFunction · 0.85
TitleFunction · 0.85
ConfirmationModalFunction · 0.85
ChannelViewFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected