useKeyPress Hook

Detect keyboard key presses

ReactKeyboardInteraction

useKeyPress

Detect keyboard key presses in real-time

Press Enter
Press Space
Press A

Copy source code and paste it in hooks/devsloka-hooks folder

hooks/devsloka-hooks/use-key-press.tsx

1"use client";
2import { useState, useEffect } from "react";
3
4export const useKeyPress = (targetKey: string): boolean => {
5 const [keyPressed, setKeyPressed] = useState<boolean>(false);
6
7 useEffect(() => {
8 const handleKeyDown = (e: KeyboardEvent) =>
9 e.key === targetKey && setKeyPressed(true);
10 const handleKeyUp = (e: KeyboardEvent) =>
11 e.key === targetKey && setKeyPressed(false);
12
13 window.addEventListener("keydown", handleKeyDown);
14 window.addEventListener("keyup", handleKeyUp);
15
16 return () => {
17 window.removeEventListener("keydown", handleKeyDown);
18 window.removeEventListener("keyup", handleKeyUp);
19 };
20 }, [targetKey]);
21
22 return keyPressed;
23};