woocommerce/packages/woocommerce-blocks/assets/js/icons/icon/index.tsx

30 lines
549 B
TypeScript
Raw Normal View History

2021-12-10 12:03:04 +00:00
/**
* External dependencies
*/
import { cloneElement, isValidElement } from '@wordpress/element';
import type { HTMLProps, ReactElement } from 'react';
interface IconProps {
srcElement?: ReactElement;
size?: number;
className?: string;
}
function Icon( {
srcElement,
size = 24,
...props
}: IconProps &
HTMLProps< HTMLImageElement | SVGElement > ): ReactElement | null {
if ( ! isValidElement( srcElement ) ) {
return null;
}
return cloneElement( srcElement, {
width: size,
height: size,
...props,
} );
}
export default Icon;