@difizen/mana-core
Version:
42 lines (41 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isMemoComponent = exports.isForwardRefComponent = void 0;
exports.renderNode = renderNode;
var _manaObservable = require("@difizen/mana-observable");
var _react = _interopRequireDefault(require("react"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* hack
* @param component react component
* @returns
*/
var isForwardRefComponent = exports.isForwardRefComponent = function isForwardRefComponent(component) {
return !!(component && component.$$typeof !== undefined && component.render !== undefined);
};
/**
* hack
* @param component react component
* @returns
*/
var isMemoComponent = exports.isMemoComponent = function isMemoComponent(component) {
return !!(component && component.$$typeof !== undefined && component.type !== undefined);
};
function renderNode(nodeOrFC) {
if (typeof nodeOrFC === 'string') {
return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
children: nodeOrFC
});
}
if ( /*#__PURE__*/_react.default.isValidElement(nodeOrFC)) {
return (0, _manaObservable.getOrigin)(nodeOrFC);
}
if (typeof nodeOrFC === 'function' || isForwardRefComponent(nodeOrFC) || isMemoComponent(nodeOrFC)) {
var _FC = nodeOrFC;
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FC, {});
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
}