UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

16 lines (15 loc) 499 B
import * as React from 'react'; import { mergeRefs } from '../hooks/useMergedRefs.js'; export const cloneElementWithRef = (children, getProps) => { if (!children) return null; if (!React.isValidElement(children)) return children; let childrenRef = children.props?.ref || children?.ref; let props = getProps(children); let ref = mergeRefs( ...[childrenRef, 'ref' in props ? props.ref : null].filter(Boolean), ); return React.cloneElement(children, { ...props, ref, }); };