From 70085defcf5add2f9fd3d60472881d86fdeb791c Mon Sep 17 00:00:00 2001 From: Ben Grant Date: Tue, 1 Jun 2021 02:55:24 +1000 Subject: [PATCH] Esc to close options menu --- crabfit-frontend/src/components/Settings/Settings.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/crabfit-frontend/src/components/Settings/Settings.tsx b/crabfit-frontend/src/components/Settings/Settings.tsx index 301d8f2..9559211 100644 --- a/crabfit-frontend/src/components/Settings/Settings.tsx +++ b/crabfit-frontend/src/components/Settings/Settings.tsx @@ -32,11 +32,20 @@ const Settings = () => { const setLocale = useLocaleUpdateStore(state => state.setLocale); const firstControlRef = useRef(); + const onEsc = e => { + if (e.key === 'Escape') { + setIsOpen(false); + } + }; + const setIsOpen = open => { _setIsOpen(open); if (open) { window.setTimeout(() => firstControlRef.current.focus(), 150); + document.addEventListener('keyup', onEsc, true); + } else { + document.removeEventListener('keyup', onEsc); } };