You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

21 lines
460 B

import {useEffect} from "react";
export default function useKey(keyName, callback) {
useEffect(() => {
const keys = Array.isArray(keyName) ? keyName : [keyName];
const handler = function (ev) {
if (keys.includes(ev.key)) {
if (callback()) {
ev.preventDefault();
}
}
};
window.addEventListener("keydown", handler);
return () => {
window.removeEventListener("keydown", handler);
}
})
}