12345678910111213141516171819202122232425262728293031 |
- 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<SVGElement>
- style?: React.CSSProperties
- }
- const IconBase = forwardRef<React.MutableRefObject<HTMLOrSVGElement>, 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
|