import React from 'react'; import { Svg } from 'react-native-svg'; import { createIcon } from '../createIcon'; export { Svg }; export type IPrimitiveIcon = { height?: number | string; width?: number | string; fill?: string; color?: string; size?: number | string; stroke?: string; as?: React.ElementType; className?: string; classNameColor?: string; style?: any; }; export const PrimitiveIcon = React.forwardRef< React.ComponentRef, IPrimitiveIcon >( ( { height, width, fill, color, classNameColor, size, stroke = 'currentColor', as: AsComp, style, ...props }, ref ) => { color = color ?? classNameColor; const sizeProps = React.useMemo(() => { if (size) return { size }; if (height && width) return { height, width }; if (height) return { height }; if (width) return { width }; return {}; }, [size, height, width]); let colorProps = {}; if (fill) { colorProps = { ...colorProps, fill: fill }; } if (stroke !== 'currentColor') { colorProps = { ...colorProps, stroke: stroke }; } else if (stroke === 'currentColor' && color !== undefined) { colorProps = { ...colorProps, stroke: color }; } if (AsComp) { return ( ); } return ( ); } ); export const UIIcon = createIcon({ Root: PrimitiveIcon, });