21 lines
500 B
TypeScript
21 lines
500 B
TypeScript
import { useEffect } from "react"
|
|
|
|
const useHotkey = (key: string, callback: () => void): void => {
|
|
useEffect(() => {
|
|
const handleKeyDown = (event: KeyboardEvent): void => {
|
|
if (event.metaKey && event.shiftKey && event.key === key) {
|
|
event.preventDefault()
|
|
callback()
|
|
}
|
|
}
|
|
|
|
window.addEventListener("keydown", handleKeyDown)
|
|
|
|
return () => {
|
|
window.removeEventListener("keydown", handleKeyDown)
|
|
}
|
|
}, [key, callback])
|
|
}
|
|
|
|
export default useHotkey
|