@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
25 lines (21 loc) • 969 B
JavaScript
"use client";
;
var utils = require('@nex-ui/utils');
var react = require('react');
var ModalContext = require('./ModalContext.cjs');
const ModalTrigger = (props)=>{
const { setOpen, open, keepMounted, modalContentId } = ModalContext.useModal();
const { children } = props;
const renderChildren = ()=>{
const element = children;
const { onClick, 'aria-haspopup': ariaHaspopup, 'aria-expanded': ariaExpanded, 'aria-controls': ariaControls } = element.props;
return /*#__PURE__*/ react.cloneElement(element, {
onClick: utils.chain(()=>setOpen(true), onClick),
'aria-haspopup': ariaHaspopup || 'dialog',
'aria-expanded': ariaExpanded || open,
'aria-controls': ariaControls || (keepMounted || open ? modalContentId : undefined)
});
};
return /*#__PURE__*/ react.isValidElement(children) ? renderChildren() : children;
};
exports.ModalTrigger = ModalTrigger;