@ozen-ui/kit
Version:
React component library
51 lines (50 loc) • 2.37 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.FieldLabel = exports.cnFieldLabel = void 0;
var tslib_1 = require("tslib");
require("./FieldLabel.css");
var react_1 = tslib_1.__importStar(require("react"));
var useIsomorphicEffect_1 = require("../../hooks/useIsomorphicEffect");
var classname_1 = require("../../utils/classname");
var FieldControl_1 = require("../FieldControl");
var constants_1 = require("./constants");
exports.cnFieldLabel = (0, classname_1.cn)('FieldLabel');
exports.FieldLabel = (0, react_1.forwardRef)(function (_a, ref) {
var focusedProp = _a.focused, children = _a.children, filledProp = _a.filled, shrink = _a.shrink, requiredProp = _a.required, disabledProp = _a.disabled, className = _a.className, sizeProp = _a.size;
var context = (0, FieldControl_1.useFieldControl)();
var _b = tslib_1.__read(context, 2), fieldControl = _b[0], setFieldControl = _b[1];
var Tag = constants_1.FIELD_LABEL_DEFAULT_TAG;
var size = sizeProp;
var required = requiredProp;
var disabled = disabledProp;
var focused = focusedProp;
var filled = filledProp;
(0, useIsomorphicEffect_1.useIsomorphicEffect)(function () {
setFieldControl(function (prevState) { return (tslib_1.__assign(tslib_1.__assign({}, prevState), { label: children })); });
}, [children]);
if (!children) {
return null;
}
if (fieldControl) {
if (size === undefined && fieldControl.size) {
size = fieldControl.size;
}
if (required === undefined && fieldControl.required) {
required = fieldControl.required;
}
if (disabled === undefined && fieldControl.disabled) {
disabled = fieldControl.disabled;
}
if (focused === undefined && fieldControl.focused) {
focused = fieldControl.focused;
}
if (filled === undefined && fieldControl.filled) {
filled = fieldControl.filled;
}
}
return (react_1.default.createElement(Tag, { className: (0, exports.cnFieldLabel)({ filled: filled, shrink: shrink, focused: focused, disabled: disabled, size: size, required: required }, [className]), ref: ref },
children,
" ",
required && react_1.default.createElement("sup", null, "*")));
});
exports.FieldLabel.displayName = 'FieldLabel';
;