UNPKG

@ozen-ui/kit

Version:

React component library

51 lines (50 loc) 2.37 kB
"use strict"; 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';