GraphQL variables now reset if entire thing deleted

This commit is contained in:
Gregory Schier
2024-08-09 14:05:38 -07:00
parent 00367c2b18
commit 877f9ce15a

View File

@@ -32,7 +32,7 @@ export function GraphQLEditor({ defaultValue, onChange, baseRequest, ...extraEdi
return { query: '', variables: {} };
}
try {
const p = JSON.parse(defaultValue ?? '{}');
const p = JSON.parse(defaultValue || '{}');
const query = p.query ?? '';
const variables = p.variables;
const operationName = p.operationName;
@@ -59,7 +59,14 @@ export function GraphQLEditor({ defaultValue, onChange, baseRequest, ...extraEdi
);
const handleChangeVariables = useCallback(
(variables: string) => handleChange({ query, variables: JSON.parse(variables) }),
(variables: string) => {
try {
handleChange({ query, variables: JSON.parse(variables || '{}') });
} catch (err) {
// Don't do anything if invalid JSON. The user probably hasn't finished
// typing yet.
}
},
[handleChange, query],
);