UNPKG

semantic-ui-react

Version:
37 lines (29 loc) 1.26 kB
"use strict"; exports.__esModule = true; exports.default = void 0; /** * Returns a createElement() type based on the props of the Component. * Useful for calculating what type a component should render as. * * @param {function} Component A function or ReactClass. * @param {object} props A ReactElement props object * @param {function} [getDefault] A function that returns a default element type. * @returns {string|function} A ReactElement type */ function getElementType(Component, props, getDefault) { var _Component$defaultPro = Component.defaultProps, defaultProps = _Component$defaultPro === void 0 ? {} : _Component$defaultPro; // ---------------------------------------- // user defined "as" element type if (props.as && props.as !== defaultProps.as) return props.as; // ---------------------------------------- // computed default element type if (getDefault) { var computedDefault = getDefault(); if (computedDefault) return computedDefault; } // ---------------------------------------- // infer anchor links if (props.href) return 'a'; // ---------------------------------------- // use defaultProp or 'div' return defaultProps.as || 'div'; } var _default = getElementType; exports.default = _default;