UNPKG

@douyinfe/semi-ui

Version:

A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.

43 lines (41 loc) 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isClassComponent = isClassComponent; exports.isCompositeTypeElement = isCompositeTypeElement; exports.isElement = isElement; exports.isEmptyChildren = isEmptyChildren; exports.isFunctionalComponent = isFunctionalComponent; Object.defineProperty(exports, "isHTMLElement", { enumerable: true, get: function () { return _dom.isHTMLElement; } }); exports.isReactComponent = isReactComponent; var _react = _interopRequireDefault(require("react")); var _dom = require("@douyinfe/semi-foundation/lib/cjs/utils/dom"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } // https://stackoverflow.com/questions/33199959/how-to-detect-a-react-component-vs-a-react-element function isClassComponent(component) { return typeof component === 'function' && Boolean(component.prototype.isReactComponent); } function isFunctionalComponent(Component) { return typeof Component === 'function' && // can be various things !(Component.prototype && Component.prototype.isReactComponent // native arrows don't have prototypes ); } function isReactComponent(component) { return isClassComponent(component) || isFunctionalComponent(component); } function isElement(element) { return /*#__PURE__*/_react.default.isValidElement(element); } function isCompositeTypeElement(element) { return isElement(element) && typeof element.type === 'function'; } function isEmptyChildren(children) { return _react.default.Children.count(children) === 0; }