react-jsonschema-form-semantic
Version:
A simple React component capable of building HTML forms out of a JSON schema. Uses React Semantic UI (css not bundled)
81 lines (68 loc) • 2.21 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
var _semanticUiReact = require("semantic-ui-react");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function TextareaWidget(props) {
var id = props.id,
options = props.options,
placeholder = props.placeholder,
value = props.value,
required = props.required,
disabled = props.disabled,
readonly = props.readonly,
autofocus = props.autofocus,
onChange = props.onChange,
onBlur = props.onBlur,
onFocus = props.onFocus;
var _onChange = function _onChange(_ref) {
var value = _ref.target.value;
return onChange(value === "" ? options.emptyValue : value);
};
return _react2.default.createElement(_semanticUiReact.TextArea, {
id: id,
className: "form-control",
value: typeof value === "undefined" ? "" : value,
placeholder: placeholder,
required: required,
disabled: disabled,
readOnly: readonly,
autoFocus: autofocus,
rows: options.rows,
onBlur: onBlur && function (event) {
return onBlur(id, event.target.value);
},
onFocus: onFocus && function (event) {
return onFocus(id, event.target.value);
},
onChange: _onChange
});
}
TextareaWidget.defaultProps = {
autofocus: false,
options: {}
};
if (process.env.NODE_ENV !== "production") {
TextareaWidget.propTypes = {
schema: _propTypes2.default.object.isRequired,
id: _propTypes2.default.string.isRequired,
placeholder: _propTypes2.default.string,
options: _propTypes2.default.shape({
rows: _propTypes2.default.number
}),
value: _propTypes2.default.string,
required: _propTypes2.default.bool,
disabled: _propTypes2.default.bool,
readonly: _propTypes2.default.bool,
autofocus: _propTypes2.default.bool,
onChange: _propTypes2.default.func,
onBlur: _propTypes2.default.func,
onFocus: _propTypes2.default.func
};
}
exports.default = TextareaWidget;