semantic-ui-react
Version:
The official Semantic-UI-React integration.
37 lines (29 loc) • 1.26 kB
JavaScript
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;
;