Skip to content

Commit 75d031a

Browse files
authored
Merge pull request #96 from CivicDataLab/95-bug-fix-submission-error-in-metadata-form
Bug fix: merge both mutations into one to avoid race condition of two mutations
2 parents caacc5e + f03580e commit 75d031a

1 file changed

Lines changed: 16 additions & 60 deletions

File tree

  • app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components

app/[locale]/dashboard/organization/[organizationId]/dataset/[id]/edit/components/EditMetadata.tsx

Lines changed: 16 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -78,23 +78,6 @@ const updateMetadataMutationDoc: any = graphql(`
7878
}
7979
`);
8080

81-
const updateDatasetMutationDoc: any = graphql(`
82-
mutation SaveDatasetDescTags($updateDatasetInput: UpdateDatasetInput!) {
83-
updateDataset(updateDatasetInput: $updateDatasetInput) {
84-
__typename
85-
... on TypeDataset {
86-
id
87-
}
88-
... on OperationInfo {
89-
messages {
90-
kind
91-
message
92-
}
93-
}
94-
}
95-
}
96-
`);
97-
9881
export function EditMetadata({
9982
id,
10083
// defaultValues,
@@ -111,27 +94,6 @@ export function EditMetadata({
11194

11295
const queryClient = useQueryClient();
11396

114-
const [datasetDetailsMutationFlag, setDatasetDetailsMutationFlag] =
115-
useState(false);
116-
const [metadataDetailsMutationFlag, setMetadataDetailsMutationFlag] =
117-
useState(false);
118-
useEffect(() => {
119-
if (datasetDetailsMutationFlag && metadataDetailsMutationFlag) {
120-
toast('Details updated successfully!');
121-
122-
queryClient.invalidateQueries({
123-
queryKey: [`metadata_values_query_${id}`, `metadata_fields_list_${id}`],
124-
});
125-
126-
getMetaDataListQuery.refetch();
127-
getDatasetMetadata.refetch();
128-
129-
router.push(
130-
`/dashboard/organization/${params.organizationId}/dataset/${id}/edit/publish`
131-
);
132-
}
133-
}, [datasetDetailsMutationFlag, metadataDetailsMutationFlag]);
134-
13597
const getMetaDataListQuery: { data: any; isLoading: boolean; refetch: any } =
13698
useQuery([`metadata_fields_list_${id}`], () =>
13799
GraphQL(metadataQueryDoc, {
@@ -156,20 +118,21 @@ export function EditMetadata({
156118
// queryKey: [`create_dataset_${'52'}`],
157119
// });
158120

159-
setMetadataDetailsMutationFlag(!metadataDetailsMutationFlag);
160-
},
161-
onError: (err: any) => {
162-
toast('Error: ' + err.message.split(':')[0]);
163-
},
164-
}
165-
);
121+
toast('Details updated successfully!');
166122

167-
const updateDatasetMutation = useMutation(
168-
(data: { updateDatasetInput: UpdateDatasetInput }) =>
169-
GraphQL(updateDatasetMutationDoc, data),
170-
{
171-
onSuccess: (data: any) => {
172-
setDatasetDetailsMutationFlag(!datasetDetailsMutationFlag);
123+
queryClient.invalidateQueries({
124+
queryKey: [
125+
`metadata_values_query_${id}`,
126+
`metadata_fields_list_${id}`,
127+
],
128+
});
129+
130+
getMetaDataListQuery.refetch();
131+
getDatasetMetadata.refetch();
132+
133+
router.push(
134+
`/dashboard/organization/${params.organizationId}/dataset/${id}/edit/publish`
135+
);
173136
},
174137
onError: (err: any) => {
175138
toast('Error: ' + err.message.split(':')[0]);
@@ -196,15 +159,6 @@ export function EditMetadata({
196159
) : (
197160
<Form
198161
onSubmit={(values) => {
199-
updateDatasetMutation.mutate({
200-
updateDatasetInput: {
201-
dataset: id,
202-
title: getDatasetMetadata?.data?.datasets[0]?.title,
203-
description: values.description,
204-
tags: [],
205-
},
206-
});
207-
208162
updateMetadataMutation.mutate({
209163
UpdateMetadataInput: {
210164
dataset: id,
@@ -221,6 +175,8 @@ export function EditMetadata({
221175
};
222176
}),
223177
],
178+
description: values.description || '',
179+
tags: values.tags || [],
224180
},
225181
});
226182
}}

0 commit comments

Comments
 (0)