Files
overleaf-cep/services/web/frontend/js/shared/components/focus-trap.tsx
T
Eric Mc Sween 8c9a80925e Merge pull request #34565 from overleaf/em-bibtex-modal-scroll
Make BibTeX modals scrollable

GitOrigin-RevId: 3ef2d2e7ac5e481c0e31c937b62ff4467c23f220
2026-06-15 08:07:29 +00:00

34 lines
781 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} className="focus-trap-container" tabIndex={-1}>
{children}
</div>
</FocusTrapReact>
)
}