mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-01 05:11:34 +02:00
Ensure select menus in Modals close on modal click GitOrigin-RevId: 4a07f16146ac99e6fb1fdf09d222e6832cc93079
34 lines
748 B
TypeScript
34 lines
748 B
TypeScript
import { useRef } from 'react'
|
|
import {
|
|
FocusTrap as FocusTrapReact,
|
|
FocusTrapProps as FocusTrapReactProps,
|
|
} from 'focus-trap-react'
|
|
|
|
export type FocusTrapProps = {
|
|
active: FocusTrapReactProps['active']
|
|
children: React.ReactNode
|
|
focusTrapOptions?: FocusTrapReactProps['focusTrapOptions']
|
|
}
|
|
|
|
export default function FocusTrap({
|
|
active,
|
|
focusTrapOptions,
|
|
children,
|
|
}: FocusTrapProps) {
|
|
const containerRef = useRef<HTMLDivElement>(null)
|
|
|
|
return (
|
|
<FocusTrapReact
|
|
active={active}
|
|
focusTrapOptions={{
|
|
...focusTrapOptions,
|
|
fallbackFocus: () => containerRef.current as HTMLElement,
|
|
}}
|
|
>
|
|
<div ref={containerRef} tabIndex={-1}>
|
|
{children}
|
|
</div>
|
|
</FocusTrapReact>
|
|
)
|
|
}
|