@pinuts/bsr-uikit-relaunch
Version:
BSR UI-KIT Relaunch
69 lines (67 loc) • 3.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
var _formBuilder = require("@pinuts/form-builder");
var _getUikitClassNames = require("../../utils/getUikitClassNames.js");
var _FormFieldChildPropTypes = _interopRequireDefault(require("../FormFieldWrapper/FormFieldChildPropTypes.jsx"));
var _FormFieldWrapper = _interopRequireDefault(require("../FormFieldWrapper/FormFieldWrapper.jsx"));
var _withFieldGroup = _interopRequireDefault(require("../../hooks/withFieldGroup.jsx"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } // form-builder
const TextAreaField = _ref => {
let {
inputProps = {},
rows = 3,
maxCharacters = '',
setTextLength = () => {},
field = {},
onChange = () => {},
isRequired,
ariaAttributes,
className,
isInvalid,
readOnly,
disabled,
viewMode,
value
} = _ref;
const handleChange = e => {
setTextLength(e.target.value?.length);
onChange(e.target.value);
};
if (viewMode) {
return value;
}
const formControlClassNames = (0, _getUikitClassNames.getFormControlClassNames)(isInvalid, readOnly, disabled, className, ['textarea', field.className].filter(Boolean));
const maxCharId = `${inputProps.id}-maxCharactersText`;
return /*#__PURE__*/_react.default.createElement("textarea", _extends({
type: "text",
maxLength: maxCharacters,
rows: rows,
required: isRequired
}, field, ariaAttributes, {
"aria-describedby": [maxCharacters && maxCharId, ariaAttributes?.['aria-describedby']].filter(Boolean).join(' ')
}, inputProps, {
value: value || '',
onChange: handleChange,
className: formControlClassNames
}));
};
TextAreaField.propTypes = {
..._FormFieldChildPropTypes.default,
setTextLength: _propTypes.default.func,
maxCharacters: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
rows: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])
};
const HigherOrderTextAreaField = (0, _withFieldGroup.default)(TextAreaField);
// wrap the field label, error message help text and more
const WrappedTextAreaField = props => {
return /*#__PURE__*/_react.default.createElement(_FormFieldWrapper.default, props, /*#__PURE__*/_react.default.createElement(HigherOrderTextAreaField, props));
};
(0, _formBuilder.registerComponent)('TextAreaField', WrappedTextAreaField);
(0, _formBuilder.registerComponent)('TextAreaFieldBasic', HigherOrderTextAreaField);
var _default = exports.default = HigherOrderTextAreaField;