@ozen-ui/kit
Version:
React component library
30 lines (29 loc) • 1.23 kB
JavaScript
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';