1
0
Fork 0
forked from Mirrors/gomuks

web/modal: allow closing modals with escape

This commit is contained in:
Tulir Asokan 2024-10-27 02:19:43 +03:00
parent 90e251dc18
commit c407eb5c7d

View file

@ -40,12 +40,18 @@ export const ModalWrapper = ({ children }: { children: React.ReactNode }) => {
}
setState(null)
}, [])
const onKeyWrapper = useCallback((evt: React.KeyboardEvent<HTMLDivElement>) => {
if (evt.key === "Escape") {
setState(null)
}
}, [])
return <>
<ModalContext value={setState}>
{children}
{state && <div
className={`overlay ${state.wrapperClass ?? "modal"} ${state.dimmed ? "dimmed" : ""}`}
onClick={onClickWrapper}
onKeyDown={onKeyWrapper}
>
<ModalCloseContext value={onClickWrapper}>
{state.content}