import { forwardRef } from 'react' import { generate } from './utils' import type { AbstractNode } from './utils' export type IconData = { name: string icon: AbstractNode } export type IconBaseProps = { data: IconData className?: string onClick?: React.MouseEventHandler style?: React.CSSProperties } const IconBase = forwardRef, IconBaseProps>((props, ref) => { const { data, className, onClick, style, ...restProps } = props return generate(data.icon, `svg-${data.name}`, { className, onClick, style, 'data-icon': data.name, 'aria-hidden': 'true', ...restProps, 'ref': ref, }) }) export default IconBase