Skip to content

Commit f37295a

Browse files
committed
fix: playground up and running
1 parent e281396 commit f37295a

File tree

7 files changed

+40
-25
lines changed

7 files changed

+40
-25
lines changed

src/FieldSet/FieldSet.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export const FieldSetContent = withStyles(fieldSetStyles.fieldSetContent)(RawFie
2525

2626
// for unit testing
2727
export class RawFieldSet extends React.Component {
28-
shouldComponentUpdate = (nextProps) => !isEqual(this.props.data, nextProps.data)
28+
shouldComponentUpdate = (nextProps) => !isEqual(this.props, nextProps)
2929

3030
render() {
3131
const { className, path, classes, schema = {}, hideTitle, idxKey } = this.props;

src/FormField.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import styles from './form-field-styles';
88

99
// exported for unit testing
1010
export class RawFormField extends React.Component {
11-
shouldComponentUpdate = (nextProps) => !isEqual(this.props.data, nextProps.data)
11+
shouldComponentUpdate = (nextProps) => !isEqual(this.props, nextProps)
1212

1313
render() {
1414
const { classes, schema, data, uiSchema = {}, onChange, onKeyDown, path, ...rest } = this.props;

src/ValidationMessages.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import React from 'react';
2+
import Alert from '@material-ui/lab/Alert';
23
import { withStyles } from '@material-ui/core/styles';
34
import keys from 'lodash/keys';
45
import filter from 'lodash/filter';
56

67
const validationStyles = {};
78

89
const Validation = ({ validation }) => (
9-
<div>
10-
<p>{validation.message}</p>
10+
<div style={{ marginBottom: 20 }}>
11+
<Alert severity='error'>{validation.message}</Alert>
1112
</div>
1213
);
1314

src/demo/body/Example.jsx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,15 @@ class Example extends React.Component {
9393
};
9494
}
9595

96+
UNSAFE_componentWillReceiveProps = (nextProps) => {
97+
const { data: { schema, uiSchema, formData } } = nextProps;
98+
this.setState({
99+
schema,
100+
uiSchema,
101+
formData,
102+
});
103+
}
104+
96105
onChange = (type) => (value) => {
97106
this.setState({ [type]: value });
98107
}
@@ -118,7 +127,7 @@ class Example extends React.Component {
118127
}
119128

120129
render() {
121-
const { data: { schema: givenSchema, uiSchema: givenUISchema, formData: givenFormData, title }, classes } = this.props;
130+
const { data: { title }, classes } = this.props;
122131
const { schema, uiSchema, formData } = this.state;
123132
return (
124133
<Paper className={classes.root}>
@@ -132,10 +141,10 @@ class Example extends React.Component {
132141
onChange={this.onChange}
133142
/>
134143
<div className={classes.display}>
135-
<FormComponent
136-
schema={givenSchema}
137-
uiSchema={givenUISchema}
138-
formData={givenFormData}
144+
<FormComponent
145+
schema={schema}
146+
uiSchema={uiSchema}
147+
formData={formData}
139148
onCancel={this.onCancel}
140149
onSubmit={this.onSubmit}
141150
onUpload={this.onUpload}

src/demo/body/Source.jsx

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,28 +29,32 @@ class Source extends React.Component {
2929
valid: isValid(source),
3030
};
3131
}
32+
3233
UNSAFE_componentWillReceiveProps = (nextProps) => {
3334
const source = JSON.stringify(nextProps.source, null, 2);
3435
this.setState({
3536
source,
3637
valid: isValid(source),
3738
});
3839
}
40+
3941
onChange = (newValue) => {
4042
this.setState({ source: newValue });
4143
}
44+
4245
onBeforeChange = (editor, data, value) => {
43-
// const { onChange } = this.props;
44-
// const parsed = isValid(value);
46+
const { onChange } = this.props;
47+
const parsed = isValid(editor);
4548

46-
// this.setState({
47-
// valid: parsed,
48-
// source: value,
49-
// });
50-
// if (parsed && onChange) {
51-
// onChange(parsed);
52-
// }
49+
this.setState({
50+
valid: parsed,
51+
source: editor,
52+
});
53+
if (parsed && onChange) {
54+
onChange(parsed);
55+
}
5356
}
57+
5458
render() {
5559
const { source, valid } = this.state;
5660
const { classes, title } = this.props;
@@ -59,7 +63,7 @@ class Source extends React.Component {
5963
<div className={classes.root}>
6064
<div className={classNames(classes.ctr, { [classes.invalid]: !valid })}>
6165
<div>
62-
{/* <Icon fontSize className={classes.icon} /> */}
66+
<Icon fontSize={'default'} className={classes.icon} />
6367
<div className={classes.title}>
6468
<p>{title}</p>
6569
</div>
@@ -68,13 +72,14 @@ class Source extends React.Component {
6872
<AceEditor
6973
mode='json'
7074
theme='textmate'
71-
value={this.state.source}
72-
onChange={this.onChange}
75+
value={source}
76+
onChange={this.onBeforeChange}
7377
name='ace_editor_1'
7478
editorProps={{ $blockScrolling: true }}
7579
showPrintMargin
7680
showGutter
7781
highlightActiveLine
82+
width={title === 'JSONSchema' ? '100%' : 500}
7883
setOptions={{
7984
enableBasicAutocompletion: true,
8085
enableLiveAutocompletion: true,

src/demo/body/editor-styles.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ export default theme => ({
2727
},
2828

2929
'icon': {
30-
fontSize: '80%',
3130
marginLeft: theme.spacing(2),
3231
},
3332
'title': {

src/fields/ConfiguredField.jsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* eslint-disable max-len */
22
import React from 'react';
3+
import isEqual from 'lodash/isEqual';
34
import classNames from 'classnames';
45
import { withStyles } from '@material-ui/core/styles';
56
import FormControl from '@material-ui/core/FormControl';
@@ -10,7 +11,7 @@ import fieldStyles from './field-styles';
1011

1112
// for unit testing only
1213
export class RawConfiguredField extends React.Component {
13-
shouldComponentUpdate = nextProps => this.props.data !== nextProps.data
14+
shouldComponentUpdate = (nextProps) => !isEqual(this.props, nextProps)
1415
render() {
1516
const {
1617
classes = {},
@@ -73,11 +74,11 @@ export class RawConfiguredField extends React.Component {
7374
className={className && classes[className]}
7475
value={data}
7576
type={type}
76-
error={hasError && true || false}
77+
error={hasError && true || undefined}
7778
{...componentProps}
7879
/>
7980
{helpText && !isCustomComponent && (
80-
<FormHelperText error={hasInlineError && true || false} id={`${id}-help`}>{helpText}</FormHelperText>
81+
<FormHelperText error={hasInlineError && true || undefined} id={`${id}-help`}>{helpText}</FormHelperText>
8182
)}
8283
</FormControl>
8384
);

0 commit comments

Comments
 (0)