@appbuckets/react-ui-core
Version:
Core utilities built for AppBuckets React UI Framework
26 lines (23 loc) • 729 B
JavaScript
import { __rest } from 'tslib';
import * as React from 'react';
import * as ReactIs from 'react-is';
import RefFindNode from './RefFindNode.js';
import RefForward from './RefForward.js';
function Ref(props) {
var children = props.children,
innerRef = props.innerRef,
rest = __rest(props, ['children', 'innerRef']);
var child = React.Children.only(children);
var ElementType = ReactIs.isForwardRef(child) ? RefForward : RefFindNode;
var childWithProps =
child && rest && Object.keys(rest).length > 0
? React.cloneElement(child, rest)
: child;
return React.createElement(
ElementType,
{ innerRef: innerRef },
childWithProps
);
}
Ref.displayName = 'Ref';
export { Ref as default };