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.

19 lines
393 B

5 years ago
  1. import {useEffect} from "react";
  2. export default function useKey(keyName, callback) {
  3. useEffect(() => {
  4. const handler = function (ev) {
  5. if (ev.key === keyName) {
  6. if (callback()) {
  7. ev.preventDefault();
  8. }
  9. }
  10. };
  11. window.addEventListener("keydown", handler);
  12. return () => {
  13. window.removeEventListener("keydown", handler);
  14. }
  15. })
  16. }