@ozen-ui/kit
Version:
React component library
34 lines (33 loc) • 1.53 kB
JavaScript
import { __assign, __read, __rest } from "tslib";
import './FieldHint.css';
import React, { forwardRef, Children } from 'react';
import { cn } from '../../utils/classname';
import { useFieldControl } from '../FieldControl';
export var FIELD_HINT_DEFAULT_TAG = 'div';
export var cnFieldHint = cn('FieldHint');
export var FieldHint = forwardRef(function (_a, ref) {
var children = _a.children, errorProp = _a.error, disabledProp = _a.disabled, sizeProp = _a.size, className = _a.className, other = __rest(_a, ["children", "error", "disabled", "size", "className"]);
var context = useFieldControl();
var _b = __read(context, 1), fieldControl = _b[0];
var Tag = FIELD_HINT_DEFAULT_TAG;
var size = sizeProp;
var error = errorProp;
var disabled = disabledProp;
var childrenCount = Children.toArray(children).filter(function (element) { return element !== undefined; }).length;
if (!childrenCount) {
return null;
}
if (fieldControl) {
if (size === undefined && fieldControl.size) {
size = fieldControl.size;
}
if (error === undefined && fieldControl.error) {
error = fieldControl.error;
}
if (disabled === undefined && fieldControl.disabled) {
disabled = fieldControl.disabled;
}
}
return (React.createElement(Tag, __assign({ className: cnFieldHint({ error: error, disabled: disabled, size: size }, [className]) }, other, { ref: ref }), children));
});
FieldHint.displayName = 'FieldHint';