Skip to content

Commit b86bb75

Browse files
committed
Handle Pre-Configured Components crash when definitions is not defined
1 parent ef00e2c commit b86bb75

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/formBuilder/PredefinedGallery.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,14 @@ export default function PredefinedGallery({
133133
mods?: Mods,
134134
}): Node {
135135
const classes = useStyles();
136-
const schemaData = (parse(schema): { [string]: any }) || {};
137-
const uiSchemaData = (parse(uischema): { [string]: any }) || {};
136+
const schemaData = React.useMemo(
137+
() => (parse(schema): { [string]: any }) || {},
138+
[schema],
139+
);
140+
const uiSchemaData = React.useMemo(
141+
() => (parse(uischema): { [string]: any }) || {},
142+
[uischema],
143+
);
138144
const allFormInputs = excludeKeys(
139145
Object.assign(
140146
{},
@@ -180,23 +186,21 @@ export default function PredefinedGallery({
180186
}
181187
onChange(stringify(schemaData), stringify(uiSchemaData));
182188
}
183-
}, [uischema, schema]);
189+
}, [uiSchemaData, schemaData]);
184190
return (
185191
<div className={classes.preDefinedGallery}>
186192
<CardGallery
187-
definitionSchema={schemaData.definitions}
188-
definitionUiSchema={uiSchemaData.definitions}
193+
definitionSchema={schemaData.definitions || {}}
194+
definitionUiSchema={uiSchemaData.definitions || {}}
189195
onChange={(
190196
newDefinitions: { [string]: any },
191197
newDefinitionsUi: { [string]: any },
192198
) => {
193-
schemaData.definitions = newDefinitions;
194-
uiSchemaData.definitions = newDefinitionsUi;
195199
// propagate changes in ui definitions to all relavant parties in main schema
196200

197201
propagateDefinitionChanges(
198-
schemaData,
199-
uiSchemaData,
202+
{ ...schemaData, definitions: newDefinitions },
203+
{ ...uiSchemaData, definitions: newDefinitionsUi },
200204
(newSchema, newUiSchema) =>
201205
onChange(stringify(newSchema), stringify(newUiSchema)),
202206
categoryHash,

0 commit comments

Comments
 (0)