import type {
DetailedHTMLProps,
HTMLAttributes,
MouseEvent,
RefObject,
} from 'react'
import React, { useRef } from 'react'
import { useTrapFocus } from '../../hooks'
interface ModalContentPureProps
extends Omit<
DetailedHTMLProps, HTMLDivElement>,
'ref'
> {
beforeElementRef: RefObject
trapFocusRef: RefObject
afterElementRef: RefObject
testId?: string
}
const ModalContentPure = ({
beforeElementRef,
trapFocusRef,
afterElementRef,
testId = 'store-modal-content',
children,
...otherProps
}: ModalContentPureProps) => {
return (
<>
{children}
>
)
}
export type ModalContentProps = Omit<
ModalContentPureProps,
'trapFocusRef' | 'onClick' | 'beforeElementRef' | 'afterElementRef'
>
const ModalContent = ({ children, ...otherProps }: ModalContentProps) => {
const trapFocusRef = useRef(null)
const beforeElementRef = useRef(null)
const afterElementRef = useRef(null)
useTrapFocus({
beforeElementRef,
trapFocusRef,
afterElementRef,
})
return (
{
event.stopPropagation()
}}
>
{children}
)
}
export default ModalContent