GT2/GT2-Android/node_modules/react-clone-referenced-element/cloneReferencedElement.js

33 lines
848 B
JavaScript

'use strict';
let React = require('react');
function cloneReferencedElement(element, config, ...children) {
let cloneRef = config.ref;
let originalRef = element.ref;
if (originalRef == null || cloneRef == null) {
return React.cloneElement(element, config, ...children);
}
if (typeof originalRef !== 'function') {
if (__DEV__) {
console.warn(
'Cloning an element with a ref that will be overwritten because it ' +
'is not a function. Use a composable callback-style ref instead. ' +
'Ignoring ref: ' + originalRef,
);
}
return React.cloneElement(element, config, ...children);
}
return React.cloneElement(element, {
...config,
ref(component) {
cloneRef(component);
originalRef(component);
},
}, ...children);
}
module.exports = cloneReferencedElement;