UNPKG

@lyra/form-builder

Version:
78 lines (65 loc) 2.41 kB
'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 };