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); } };