UNPKG

@nex-ui/react

Version:

🎉 A beautiful, modern, and reliable React component library.

25 lines (21 loc) • 969 B
"use client"; 'use strict'; 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;