UNPKG

2.29 kBJavaScriptView Raw
1import React from 'react';
2import * as ReactIs from 'react-is';
3import { observer } from 'mobx-react';
4import Grid from '@material-ui/core/Grid';
5import Inputs from './Inputs';
6const FieldRenderObserver = ({ component, propsForm, }) => {
7 let FieldComponent = component;
8 try {
9 FieldComponent = observer(component);
10 }
11 catch (error) { }
12 return React.createElement(FieldComponent, Object.assign({}, propsForm));
13};
14class FieldRender extends React.PureComponent {
15 constructor() {
16 super(...arguments);
17 this.changeField = (e, callback) => {
18 const { changeField } = this.props;
19 changeField && changeField(e, callback);
20 };
21 }
22 render() {
23 const { field } = this.props;
24 const breakpoints = Object.assign({}, field.breakpoints);
25 const { xs = 12 } = breakpoints;
26 const { sm = xs } = breakpoints;
27 const { md = sm } = breakpoints;
28 const { lg = md } = breakpoints;
29 const { xl = lg } = breakpoints;
30 const { component: Component, render, type, grid = typeof this.props.grid !== 'undefined'
31 ? this.props.grid
32 : true, } = field;
33 const propsForm = {
34 field,
35 changeField: this.changeField,
36 };
37 const formInput = React.createElement(Inputs, Object.assign({}, propsForm));
38 if (render)
39 return render({
40 children: formInput,
41 props: propsForm,
42 });
43 if (type === 'component') {
44 if (React.isValidElement(Component) &&
45 typeof Component !== 'function') {
46 return (React.createElement(Component.type, Object.assign({}, Object.assign(Object.assign({}, Component.props), propsForm))));
47 }
48 if (ReactIs.isValidElementType(Component))
49 return (React.createElement(FieldRenderObserver, { component: Component, propsForm: propsForm }));
50 return null;
51 }
52 return grid ? (React.createElement(Grid, { item: true, xs: xs, sm: sm, md: md, lg: lg, xl: xl }, formInput)) : (formInput);
53 }
54}
55export { FieldRender };
56export default FieldRender;
57//# sourceMappingURL=FieldRender.js.map
\No newline at end of file