@talend/react-forms
Version:
React forms library based on json schema form.
91 lines (89 loc) • 2.72 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = TextArea;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _designSystem = require("@talend/design-system");
var _labels = require("../../utils/labels");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/* eslint-disable jsx-a11y/no-autofocus */
function TextArea({
id,
isValid,
errorMessage,
onChange,
onFinish,
schema,
value,
valueIsUpdating
}) {
const {
autoFocus,
description,
disabled = false,
placeholder,
readOnly = false,
rows = 5,
title,
labelProps
} = schema;
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_designSystem.Form.Textarea, {
id: id,
autoFocus: autoFocus,
label: (0, _labels.getLabelProps)(title, labelProps, schema.hint, schema.required),
required: schema.required,
disabled: disabled || valueIsUpdating,
placeholder: placeholder,
onBlur: event => onFinish(event, {
schema
}),
onChange: event => onChange(event, {
schema,
value: event.target.value
}),
readOnly: readOnly,
rows: rows,
value: value,
description: errorMessage || description,
hasError: !isValid,
"aria-invalid": !isValid,
"aria-required": schema.required
});
}
if (process.env.NODE_ENV !== 'production') {
TextArea.propTypes = {
id: _propTypes.default.string,
isValid: _propTypes.default.bool,
errorMessage: _propTypes.default.string,
onChange: _propTypes.default.func.isRequired,
onFinish: _propTypes.default.func.isRequired,
schema: _propTypes.default.shape({
className: _propTypes.default.string,
autoFocus: _propTypes.default.bool,
description: _propTypes.default.string,
disabled: _propTypes.default.bool,
placeholder: _propTypes.default.string,
readOnly: _propTypes.default.bool,
required: _propTypes.default.bool,
rows: _propTypes.default.number,
title: _propTypes.default.string,
labelProps: _propTypes.default.object,
hint: _propTypes.default.shape({
icon: _propTypes.default.string,
className: _propTypes.default.string,
overlayComponent: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.string]).isRequired,
overlayPlacement: _propTypes.default.string
})
}),
value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
valueIsUpdating: _propTypes.default.bool
};
}
TextArea.defaultProps = {
isValid: true,
schema: {},
value: ''
};
//# sourceMappingURL=TextArea.component.js.map