@zohodesk/components
Version:
In this Package, we Provide Some Basic Components to Build Web App
56 lines (41 loc) • 3.28 kB
JavaScript
;
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function setRef(refFunc, value) {
if (typeof refFunc === 'function') {
refFunc(value);
} else if (refFunc instanceof Object) {
refFunc.current = value;
}
}
var DOMRefWrapper = /*#__PURE__*/(0, _react.forwardRef)(function (props, refFunc) {
var ele = _react.Children.only(props.children);
var _props$domRefKey = props.domRefKey,
domRefKey = _props$domRefKey === void 0 ? 'eleRef' : _props$domRefKey; // NOTE: need to check for forward Ref function, Because in Froward Ref case refKey is "ref"
var refKey = typeof ele.type !== 'string' ? domRefKey : 'ref'; // const setAttribute = useCallback(node => {
var eleRealRefFunc = ele.props[refKey];
var setAttribute = (0, _react.useCallback)(function (ref) {
setRef(refFunc, ref);
setRef(eleRealRefFunc, ref);
}, [refFunc, eleRealRefFunc]); // let refKey = typeof ele.type === 'string' ? 'ref' : 'eleRef';
var childProps = _defineProperty({}, refKey, setAttribute);
return /*#__PURE__*/(0, _react.cloneElement)(ele, childProps);
});
DOMRefWrapper.defaultProps = {
domRefKey: 'eleRef'
};
DOMRefWrapper.propTypes = {
domRefKey: _propTypes["default"].any,
children: _propTypes["default"].any
};
var _default = DOMRefWrapper;
exports["default"] = _default;