Skip to content

Commit 17264cd

Browse files
committed
3.0.0-beta.1
1 parent 438616f commit 17264cd

15 files changed

+289
-211
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@
174174
"peerDependencies": {
175175
"immutability-helper": "^2.6.5 || ^3.0.0"
176176
},
177-
"version": "3.0.0-beta.0",
177+
"version": "3.0.0-beta.1",
178178
"directories": {
179179
"doc": "docs"
180180
},

src/FieldSet/FieldSet.tsx

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import isEqual from 'lodash/isEqual';
55
import has from 'lodash/has';
66

77
// Material UI
8-
import { withStyles } from '@mui/styles';
98
import Typography from '@mui/material/Typography';
109
import Divider from '@mui/material/Divider';
1110

@@ -32,31 +31,30 @@ export const shouldHideTitle = (uiSchema, schema) => isPageLayoutSet(uiSchema) |
3231
export const RawFieldSetContent = (props) => {
3332
const { schema = {}, uiSchema = {}, xhrSchema = {} } = props;
3433
const { type } = schema;
34+
const classes = fieldSetStyles.fieldSetContent();
3535
const SchemaTypeComponents = RENDER_BASED_ON_SCHEMA_TYPE({
3636
schema,
3737
uiSchema,
3838
xhrSchema,
39-
props,
39+
props: { ...props, classes },
4040
});
4141
return Utils.callFunctionIfExists(SchemaTypeComponents, type);
4242
};
4343

44-
export const FieldSetContent = withStyles(fieldSetStyles.fieldSetContent)(RawFieldSetContent);
44+
export const FieldSetContent = RawFieldSetContent;
4545

4646
// for unit testing
47-
class RawFieldSet extends React.Component<FieldSetProps, {}> {
48-
shouldComponentUpdate = (nextProps) => !isEqual(this.props, nextProps)
49-
50-
render() {
47+
const RawFieldSet = React.memo(
48+
(props: FieldSetProps) => {
5149
const {
5250
className,
5351
path,
54-
classes,
5552
schema = {},
5653
hideTitle,
5754
noTitle,
5855
validation,
59-
} = this.props;
56+
} = props;
57+
const classes = fieldSetStyles.fieldSet();
6058
const LegendTitle = () => ((
6159
!hideTitle
6260
|| path === ''
@@ -88,10 +86,9 @@ class RawFieldSet extends React.Component<FieldSetProps, {}> {
8886
{!noTitle && (<LegendTitle />)}
8987
{!noTitle && (<LegendSubTitle />)}
9088
{path === '' && <ValidationMessages validation={validation} />}
91-
<FieldSetContent path={path} {...this.props} />
89+
<FieldSetContent path={path} {...props} />
9290
</fieldset>
9391
);
94-
}
95-
}
92+
}, (prevProps, nextProps) => isEqual(prevProps, nextProps));
9693

97-
export default withStyles(fieldSetStyles.fieldSet)(RawFieldSet);
94+
export default RawFieldSet;

src/FieldSet/FieldSetArray.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ export const RawFieldSetArray = (props: FieldSetArrayProps) => {
2323
const {
2424
startIdx = 0,
2525
className,
26-
classes,
2726
schema = {},
2827
uiSchema = {},
2928
definitions = {},
@@ -34,7 +33,7 @@ export const RawFieldSetArray = (props: FieldSetArrayProps) => {
3433
onDeleteItem,
3534
...rest
3635
} = props;
37-
// const schema = { ...givenSchema };
36+
const classes = fieldSetStyles.fieldSetArray();
3837
const canReorder = uiSchema && uiSchema['ui:options'] && uiSchema['ui:options'].canReorder;
3938
const allowRecursive = uiSchema && uiSchema['ui:options'] && uiSchema['ui:options'].allowRecursive;
4039
const hasSelectWidget = uiSchema && uiSchema['ui:widget'];
@@ -118,4 +117,4 @@ export const RawFieldSetArray = (props: FieldSetArrayProps) => {
118117
</div>
119118
);
120119
};
121-
export default withStyles(fieldSetStyles.fieldSetArray)(RawFieldSetArray);
120+
export default RawFieldSetArray;

src/FieldSet/FieldSetObject.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ const classNames = require('classnames');
2929

3030
export const RawFieldSetObject = ({
3131
className,
32-
classes,
3332
schema: givenSchema = {},
3433
uiSchema = {},
3534
xhrSchema = {},
@@ -44,6 +43,7 @@ export const RawFieldSetObject = ({
4443
tabKey,
4544
...rest
4645
}: FieldSetObjectProps) => {
46+
const classes = fieldSetStyles.fieldSetObject();
4747
const schema = { ...givenSchema };
4848
const orientation = (uiSchema['ui:orientation'] === 'row' ? classes.row : null);
4949
if (isTabContent) {
@@ -192,4 +192,4 @@ export const RawFieldSetObject = ({
192192
</div>
193193
);
194194
};
195-
export default withStyles(fieldSetStyles.fieldSetObject)(RawFieldSetObject);
195+
export default RawFieldSetObject;

src/FieldSet/ReorderControls.tsx

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import IconButton from '@mui/material/IconButton';
66
import ArrowUpward from '@mui/icons-material/ArrowUpward';
77
import ArrowDownward from '@mui/icons-material/ArrowDownward';
88
import RemoveCircle from '@mui/icons-material/Close';
9-
import { withStyles } from '@mui/styles';
109

1110
// Styles
1211
import { ReorderControlsProps } from '@core-types/ReorderControls.type';
@@ -18,33 +17,35 @@ export const RawReorderControls = (
1817
{
1918
first,
2019
last,
21-
classes,
2220
onMoveItemUp,
2321
onMoveItemDown,
2422
onDeleteItem,
2523
canReorder,
2624
}: ReorderControlsProps,
27-
) => (
28-
<div className={classes.root}>
29-
{canReorder && (
30-
<div>
31-
<IconButton data-testid='upButton' className={classes.up} onClick={onMoveItemUp} disabled={first}>
32-
<ArrowUpward />
33-
</IconButton>
34-
<IconButton data-testid='downButton' className={classes.down} onClick={onMoveItemDown} disabled={last}>
35-
<ArrowDownward />
36-
</IconButton>
37-
</div>
38-
)}
39-
<IconButton
40-
data-testid='closeButton'
41-
className={
42-
canReorder ? [classes.remove, classes.removeCanReorder].join(' ') : classes.remove
43-
}
44-
onClick={onDeleteItem}
45-
>
46-
<RemoveCircle />
47-
</IconButton>
48-
</div>
49-
);
50-
export default withStyles(fieldSetStyles.reorderControls)(RawReorderControls);
25+
) => {
26+
const classes = fieldSetStyles.reorderControls();
27+
return (
28+
<div className={classes.root}>
29+
{canReorder && (
30+
<div>
31+
<IconButton data-testid='upButton' onClick={onMoveItemUp} disabled={first}>
32+
<ArrowUpward />
33+
</IconButton>
34+
<IconButton data-testid='downButton' onClick={onMoveItemDown} disabled={last}>
35+
<ArrowDownward />
36+
</IconButton>
37+
</div>
38+
)}
39+
<IconButton
40+
data-testid='closeButton'
41+
className={
42+
canReorder ? [classes.remove, classes.removeCanReorder].join(' ') : classes.remove
43+
}
44+
onClick={onDeleteItem}
45+
>
46+
<RemoveCircle />
47+
</IconButton>
48+
</div>
49+
);
50+
};
51+
export default RawReorderControls;

src/FieldSet/ReorderableFormField.tsx

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/* eslint-disable react/jsx-props-no-spreading */
22
import React from 'react';
3-
import { withStyles } from '@mui/styles';
43
import FormField from '../FormField';
54
import fieldSetStyles from './field-set-styles';
65
import ReorderControls from './ReorderControls';
@@ -14,7 +13,6 @@ export const RawReorderableFormField = ({
1413
first,
1514
last,
1615
className,
17-
classes,
1816
path,
1917
onMoveItemUp,
2018
onMoveItemDown,
@@ -24,32 +22,35 @@ export const RawReorderableFormField = ({
2422
recursiveDeleteItem,
2523
schema,
2624
...rest
27-
}: ReorderableFormFieldProps) => (
28-
<div className={classNames(className, classes.root)}>
29-
{dynamicKeyField && (
30-
<FormField
31-
path={path}
32-
{...rest}
33-
schema={{ ...schema, type: 'string' }}
34-
data={dynamicKeyField}
35-
dynamicKeyField={'key'}
36-
/>
37-
)}
38-
<FormField
39-
path={path}
40-
{...rest}
41-
schema={schema}
42-
onDeleteItem={recursiveDeleteItem}
43-
/>
44-
<ReorderControls
45-
first={first}
46-
last={last}
47-
onMoveItemUp={onMoveItemUp}
48-
onMoveItemDown={onMoveItemDown}
49-
onDeleteItem={onDeleteItem}
50-
canReorder={canReorder}
51-
/>
52-
</div>
53-
);
25+
}: ReorderableFormFieldProps) => {
26+
const classes = fieldSetStyles.reorderable();
27+
return (
28+
<div className={classNames(className, classes.root)}>
29+
{dynamicKeyField && (
30+
<FormField
31+
path={path}
32+
{...rest}
33+
schema={{ ...schema, type: 'string' }}
34+
data={dynamicKeyField}
35+
dynamicKeyField={'key'}
36+
/>
37+
)}
38+
<FormField
39+
path={path}
40+
{...rest}
41+
schema={schema}
42+
onDeleteItem={recursiveDeleteItem}
43+
/>
44+
<ReorderControls
45+
first={first}
46+
last={last}
47+
onMoveItemUp={onMoveItemUp}
48+
onMoveItemDown={onMoveItemDown}
49+
onDeleteItem={onDeleteItem}
50+
canReorder={canReorder}
51+
/>
52+
</div>
53+
);
54+
}
5455

55-
export default withStyles(fieldSetStyles.reorderable)(RawReorderableFormField);
56+
export default RawReorderableFormField;

0 commit comments

Comments
 (0)