UNPKG

@wordpress/components

Version:
65 lines (54 loc) 1.3 kB
import _extends from "@babel/runtime/helpers/esm/extends"; /** * External dependencies */ /** * WordPress dependencies */ import { cloneElement, createElement, isValidElement } from '@wordpress/element'; import { SVG } from '@wordpress/primitives'; /** * Internal dependencies */ import Dashicon from '../dashicon'; function Icon(_ref) { let { icon = null, size = 'string' === typeof icon ? 20 : 24, ...additionalProps } = _ref; if ('string' === typeof icon) { return createElement(Dashicon, _extends({ icon: icon, size: size }, additionalProps)); } if (isValidElement(icon) && Dashicon === icon.type) { return cloneElement(icon, { ...additionalProps }); } if ('function' === typeof icon) { return createElement(icon, { size, ...additionalProps }); } if (icon && (icon.type === 'svg' || icon.type === SVG)) { const appliedProps = { ...icon.props, width: size, height: size, ...additionalProps }; return createElement(SVG, appliedProps); } if (isValidElement(icon)) { return cloneElement(icon, { // @ts-ignore Just forwarding the size prop along size, ...additionalProps }); } return icon; } export default Icon; //# sourceMappingURL=index.js.map