UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

41 lines (40 loc) 1.21 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); function _export(target, all) { for (var name in all) Object.defineProperty(target, name, { enumerable: true, get: all[name], }); } _export(exports, { cloneElementWithRef: function () { return cloneElementWithRef; }, isReact17or18: function () { return isReact17or18; }, }); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _useMergedRefs = require('../hooks/useMergedRefs.js'); const _React = _react; const isReact17or18 = (() => { let version = _React.version?.split('.')?.[0]; return ['17', '18'].includes(version); })(); const cloneElementWithRef = (children, getProps) => { if (!children) return null; if (!_react.isValidElement(children)) return children; let childrenRef = isReact17or18 ? children?.ref : children.props?.ref; let props = getProps(children); let ref = (0, _useMergedRefs.mergeRefs)( ...[childrenRef, 'ref' in props ? props.ref : null].filter(Boolean), ); return _react.cloneElement(children, { ...props, ref, }); };