@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
34 lines (31 loc) • 975 B
JavaScript
"use client";
import { jsx } from 'react/jsx-runtime';
import { useMemo } from 'react';
import { usePopover } from './PopoverContext.mjs';
import { PopperTrigger } from '../popper/PopperTrigger.mjs';
import { usePopper } from '../popper/PopperContext.mjs';
const useAriaProps = ()=>{
const { id, keepMounted } = usePopover();
const { open } = usePopper();
return useMemo(()=>({
'aria-haspopup': 'dialog',
'aria-expanded': open,
'aria-controls': open || keepMounted ? id : undefined
}), [
id,
keepMounted,
open
]);
};
const PopoverTrigger = ({ children, closeOnClick })=>{
const ariaProps = useAriaProps();
return /*#__PURE__*/ jsx(PopperTrigger, {
interactive: true,
action: "click",
closeOnClick: closeOnClick,
elementProps: ariaProps,
children: children
});
};
PopoverTrigger.displayName = 'PopoverTrigger';
export { PopoverTrigger };