Skip to content

Commit ee2c168

Browse files
committed
refactor: enhance error handling and success notifications for dataset creation
1 parent e22390d commit ee2c168

File tree

4 files changed

+59
-41
lines changed

4 files changed

+59
-41
lines changed

app/[locale]/dashboard/[entityType]/[entitySlug]/dataset/[id]/edit/components/EditMetadata.tsx

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ const updateMetadataMutationDoc: any = graphql(`
9999
success
100100
errors {
101101
fieldErrors {
102+
field
102103
messages
103104
}
104105
}
@@ -213,22 +214,27 @@ export function EditMetadata({ id }: { id: string }) {
213214
),
214215
{
215216
onSuccess: (res: any) => {
216-
toast('Details updated successfully!');
217-
queryClient.invalidateQueries({
218-
queryKey: [
219-
`metadata_values_query_${params.id}`,
220-
`metadata_fields_list_${id}`,
221-
],
222-
});
223-
const updatedData = defaultValuesPrepFn(
224-
res.addUpdateDatasetMetadata.data
225-
);
226-
setFormData(updatedData);
227-
setPreviousFormData(updatedData);
228-
// getDatasetMetadata.refetch();
229-
},
230-
onError: (err: any) => {
231-
toast('Error: ' + err.message);
217+
218+
if (res.addUpdateDatasetMetadata.success) {
219+
toast('Details updated successfully!');
220+
queryClient.invalidateQueries({
221+
queryKey: [
222+
`metadata_values_query_${params.id}`,
223+
`metadata_fields_list_${id}`,
224+
],
225+
});
226+
const updatedData = defaultValuesPrepFn(
227+
res.addUpdateDatasetMetadata.data
228+
);
229+
setFormData(updatedData);
230+
setPreviousFormData(updatedData);
231+
// getDatasetMetadata.refetch();
232+
} else {
233+
toast(
234+
'Error: ' +
235+
res.addUpdateDatasetMetadata.errors.fieldErrors[0].messages[0]
236+
);
237+
}
232238
},
233239
}
234240
);
@@ -317,6 +323,7 @@ export function EditMetadata({ id }: { id: string }) {
317323
},
318324
{}
319325
);
326+
320327
updateMetadataMutation.mutate({
321328
UpdateMetadataInput: {
322329
dataset: id,
@@ -330,16 +337,16 @@ export function EditMetadata({ id }: { id: string }) {
330337
'tags',
331338
'isPublic',
332339
'license',
333-
].includes(valueItem)
340+
].includes(valueItem) && transformedValues[valueItem] !== ''
334341
)
335342
.map((key) => {
336343
return {
337344
id: key,
338-
value: transformedValues[key] || '',
345+
value: transformedValues[key],
339346
};
340347
}),
341348
],
342-
license: updatedData.license || '',
349+
...(updatedData.license && { license: updatedData.license }),
343350
accessType: updatedData.accessType || 'PUBLIC',
344351
description: updatedData.description || '',
345352
tags: updatedData.tags?.map((item: any) => item.label) || [],

app/[locale]/dashboard/[entityType]/[entitySlug]/dataset/components/content.tsx

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import { useRouter } from 'next/navigation';
44
import { graphql } from '@/gql';
55
import { useMutation } from '@tanstack/react-query';
6-
import { Button, Icon, Text } from 'opub-ui';
6+
import { Button, Icon, Text, toast } from 'opub-ui';
77
import { twMerge } from 'tailwind-merge';
88

99
import { GraphQL } from '@/lib/api';
@@ -45,12 +45,16 @@ export const Content = ({
4545
),
4646
{
4747
onSuccess: (data: any) => {
48-
router.push(
49-
`/dashboard/${params.entityType}/${params.entitySlug}/dataset/${data?.addDataset?.data?.id}/edit/metadata`
50-
);
51-
},
52-
onError: (err: any) => {
53-
console.log('Error ::: ', err);
48+
if (data.addDataset.success) {
49+
toast('Dataset created successfully!');
50+
router.push(
51+
`/dashboard/${params.entityType}/${params.entitySlug}/dataset/${data?.addDataset?.id}/edit/metadata`
52+
);
53+
} else {
54+
toast(
55+
'Error: ' + data.addDataset.errors.fieldErrors[0].messages[0]
56+
);
57+
}
5458
},
5559
}
5660
);

app/[locale]/dashboard/[entityType]/[entitySlug]/dataset/page-layout.tsx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import { useParams, useRouter } from 'next/navigation';
44
import { graphql } from '@/gql';
55
import { useMutation, useQueryClient } from '@tanstack/react-query';
6+
import { toast } from 'opub-ui';
67

78
import { GraphQL } from '@/lib/api';
89
import { ActionBar } from './components/action-bar';
@@ -46,16 +47,18 @@ export const Page = () => {
4647
),
4748
{
4849
onSuccess: (data: any) => {
49-
queryClient.invalidateQueries({
50-
queryKey: [`create_dataset_${'52'}`],
51-
});
50+
if (data.addDataset.success) {
51+
toast('Dataset created successfully!');
52+
queryClient.invalidateQueries({
53+
queryKey: [`create_dataset_${params.entityType}`],
54+
});
5255

53-
router.push(
54-
`/dashboard/${params.entityType}/${params.entitySlug}/dataset/${data?.addDataset?.id}/edit/metadata`
55-
);
56-
},
57-
onError: (err: any) => {
58-
console.log('Error ::: ', err);
56+
router.push(
57+
`/dashboard/${params.entityType}/${params.entitySlug}/dataset/${data?.addDataset?.id}/edit/metadata`
58+
);
59+
} else {
60+
toast('Error: ' + data.addDataset.errors.fieldErrors[0].messages[0]);
61+
}
5962
},
6063
}
6164
);

app/[locale]/dashboard/[entityType]/[entitySlug]/dataset/page.tsx

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,17 @@ export default function DatasetPage({
143143
),
144144
{
145145
onSuccess: (data: any) => {
146+
if (data.addDataset.success) {
147+
toast('Dataset created successfully!');
146148

147-
router.push(
148-
`/dashboard/${params.entityType}/${params.entitySlug}/dataset/${data?.addDataset?.data?.id}/edit/metadata`
149-
);
150-
},
151-
onError: (err: any) => {
152-
toast('Error: ' + err.message.split(':')[0]);
149+
router.push(
150+
`/dashboard/${params.entityType}/${params.entitySlug}/dataset/${data?.addDataset?.id}/edit/metadata`
151+
);
152+
} else {
153+
toast(
154+
'Error: ' + data.addDataset.errors.fieldErrors[0].messages[0]
155+
);
156+
}
153157
},
154158
}
155159
);

0 commit comments

Comments
 (0)