-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Expand file tree
/
Copy pathGlobalSearchShortcut.tsx
More file actions
38 lines (33 loc) · 1010 Bytes
/
GlobalSearchShortcut.tsx
File metadata and controls
38 lines (33 loc) · 1010 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import React, { useEffect } from "react";
interface GlobalSearchShortcutProps {
onOpen: () => void;
}
const GlobalSearchShortcut: React.FC<GlobalSearchShortcutProps> = ({
onOpen,
}) => {
useEffect(() => {
const handleKeyDown = (event: KeyboardEvent) => {
console.log(
"Key pressed:",
event.key,
"metaKey:",
event.metaKey,
"ctrlKey:",
event.ctrlKey,
);
if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "k") {
console.log("Cmd+K detected, preventing default and calling onOpen");
event.preventDefault();
event.stopPropagation();
onOpen();
}
};
console.log("Adding keydown event listener to window");
window.addEventListener("keydown", handleKeyDown, true);
return () => {
window.removeEventListener("keydown", handleKeyDown, true);
};
}, [onOpen]);
return null; // This component doesn't render anything
};
export default GlobalSearchShortcut;