@lyra/form-builder
Version:
Lyra form builder
78 lines (65 loc) • 2.41 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _FormBuilderInput = require('./FormBuilderInput');
var _FormBuilderContext = require('./FormBuilderContext');
var _FormBuilderContext2 = _interopRequireDefault(_FormBuilderContext);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Todo: consider deprecating this in favor of <FormBuilderContext ...><FormBuilderInput .../></FormBuilderContext>
class FormBuilder extends _react2.default.Component {
render() {
var _props = this.props;
const schema = _props.schema,
value = _props.value,
type = _props.type;
var _props$path = _props.path;
const path = _props$path === undefined ? [] : _props$path,
onChange = _props.onChange,
resolveInputComponent = _props.resolveInputComponent,
resolvePreviewComponent = _props.resolvePreviewComponent,
patchChannel = _props.patchChannel;
if (!schema) {
throw new TypeError('You must provide a schema to <FormBuilder (...)');
}
return _react2.default.createElement(
_FormBuilderContext2.default,
{
schema: schema,
value: value,
resolveInputComponent: resolveInputComponent,
resolvePreviewComponent: resolvePreviewComponent,
patchChannel: patchChannel
},
_react2.default.createElement(_FormBuilderInput.FormBuilderInput, {
path: path,
value: value,
type: type,
onChange: onChange,
level: 0,
isRoot: true
})
);
}
}
exports.default = FormBuilder;
FormBuilder.createPatchChannel = _FormBuilderContext2.default.createPatchChannel;
FormBuilder.propTypes = {
value: _propTypes2.default.any,
schema: _propTypes2.default.object.isRequired,
type: _propTypes2.default.object.isRequired,
path: _propTypes2.default.array,
onChange: _propTypes2.default.func.isRequired,
patchChannel: _propTypes2.default.shape({
onPatch: _propTypes2.default.func
}).isRequired,
resolveInputComponent: _propTypes2.default.func.isRequired,
resolvePreviewComponent: _propTypes2.default.func.isRequired
};
FormBuilder.defaultProps = {
value: undefined
};