UNPKG

@ozen-ui/kit

Version:

React component library

30 lines (29 loc) 1.23 kB
import { __assign, __read, __rest } from "tslib"; import './FieldIcon.css'; import React, { forwardRef } from 'react'; import { cn } from '../../utils/classname'; import { getIconSizeToFormElement } from '../../utils/getIconSizeToFormElement'; import { renderContent } from '../../utils/renderContent'; import { useFieldControl } from '../FieldControl'; export var FIELD_ICON_DEFAULT_TAG = 'div'; export var cnFieldIcon = cn('FieldIcon'); export var FieldIcon = forwardRef(function (_a, ref) { var icon = _a.icon, className = _a.className, sizeProp = _a.size, other = __rest(_a, ["icon", "className", "size"]); var context = useFieldControl(); var _b = __read(context, 1), fieldControl = _b[0]; var Tag = FIELD_ICON_DEFAULT_TAG; var size = sizeProp; if (!icon) { return null; } if (fieldControl) { if (size === undefined && fieldControl.size) { size = fieldControl.size; } } return (React.createElement(Tag, __assign({ className: cnFieldIcon({ size: size }, [className]) }, other, { ref: ref }), renderContent({ content: icon, props: { size: size && getIconSizeToFormElement(size) }, }))); }); FieldIcon.displayName = 'FieldIcon';