From 3b275e723ddc228943f74d80c09274537487f397 Mon Sep 17 00:00:00 2001 From: Arnaud Date: Mon, 11 Nov 2024 09:32:37 +0700 Subject: [PATCH] Add keyboard motion for modal --- src/components/Modal/Modal.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/components/Modal/Modal.tsx b/src/components/Modal/Modal.tsx index e40b574..fbd30f3 100644 --- a/src/components/Modal/Modal.tsx +++ b/src/components/Modal/Modal.tsx @@ -89,6 +89,20 @@ export function Modal({ setTimeout(onClose, 250); }; + useEffect(() => { + const onKeyPress = (event: Event) => { + const e = event as KeyboardEvent; + if (e.key === "Escape") { + setInternalOpen(false); + setTimeout(onClose, 250); + } + }; + + document.addEventListener("keydown", onKeyPress); + + return () => document.removeEventListener("keydown", onKeyPress); + }, [setInternalOpen, onClose]); + return (