Skip to content

Commit 41af17a

Browse files
committed
make mutation on change of file
1 parent 4855b6f commit 41af17a

File tree

2 files changed

+62
-46
lines changed

2 files changed

+62
-46
lines changed

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

Lines changed: 57 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,23 @@ export const EditResource = ({ reload, data }: any) => {
6363
const [schema, setSchema] = React.useState([]);
6464

6565
const { mutate, isLoading } = useMutation(
66-
(data: { fileResourceInput: UpdateFileResourceInput }) =>
67-
GraphQL(updateResourceDoc, data),
66+
(data: {
67+
fileResourceInput: UpdateFileResourceInput;
68+
isResetSchema: boolean;
69+
}) => GraphQL(updateResourceDoc, data),
6870
{
69-
onSuccess: () => {
71+
onSuccess: (data, variables) => {
7072
toast('File changes saved', {
7173
action: {
7274
label: 'Dismiss',
7375
onClick: () => {},
7476
},
7577
});
78+
if (variables.isResetSchema) {
79+
schemaMutate({
80+
resourceId: resourceId,
81+
});
82+
}
7683
reload();
7784
},
7885
onError: (err: any) => {
@@ -81,6 +88,34 @@ export const EditResource = ({ reload, data }: any) => {
8188
}
8289
);
8390

91+
const resetSchema: any = graphql(`
92+
mutation resetFileResourceSchema($resourceId: UUID!) {
93+
resetFileResourceSchema(resourceId: $resourceId) {
94+
... on TypeResource {
95+
id
96+
schema {
97+
format
98+
description
99+
id
100+
fieldName
101+
}
102+
}
103+
}
104+
}
105+
`);
106+
107+
const { mutate: schemaMutate, isLoading: isSchemaLoading } = useMutation(
108+
(data: { resourceId: string }) => GraphQL(resetSchema, data),
109+
{
110+
onSuccess: () => {
111+
refetch();
112+
},
113+
onError: (err: any) => {
114+
console.log('Error ::: ', err);
115+
},
116+
}
117+
);
118+
84119
const {
85120
data: payload,
86121
refetch,
@@ -133,6 +168,7 @@ export const EditResource = ({ reload, data }: any) => {
133168
onClick: () => {},
134169
},
135170
});
171+
refetch();
136172
reload();
137173
},
138174
onError: (err: any) => {
@@ -204,17 +240,20 @@ export const EditResource = ({ reload, data }: any) => {
204240
</div>
205241
);
206242

207-
const [resourceFile, setResourceFile] = React.useState<File>();
208243

209244
const onDrop = React.useCallback(
210-
(_dropFiles: File[], acceptedFiles: File[]) =>
211-
setResourceFile(acceptedFiles[0]),
245+
(_dropFiles: File[], acceptedFiles: File[]) => {
246+
mutate({
247+
fileResourceInput: {
248+
id: resourceId,
249+
file: acceptedFiles[0],
250+
},
251+
isResetSchema: true,
252+
});
253+
},
212254
[]
213255
);
214-
215-
const fileInput = resourceFile ? (
216-
<div className="flex ">{resourceFile.name} </div>
217-
) : (
256+
const fileInput = (
218257
<div className="flex">
219258
<Text className="break-all">
220259
{getResourceObject(resourceId)?.fileDetails.file.name.replace(
@@ -239,14 +278,18 @@ export const EditResource = ({ reload, data }: any) => {
239278
name: resourceName
240279
? resourceName
241280
: getResourceObject(resourceId)?.label,
242-
file: resourceFile,
243281
},
282+
isResetSchema: false,
244283
});
245284
if (schema.length > 0) {
285+
const updatedScheme = schema.map((item) => {
286+
const { fieldName, ...rest } = item as any;
287+
return rest;
288+
});
246289
modify({
247290
input: {
248291
resource: resourceId,
249-
updates: schema,
292+
updates: updatedScheme,
250293
},
251294
});
252295
}
@@ -425,7 +468,8 @@ export const EditResource = ({ reload, data }: any) => {
425468
setSchema={setSchema}
426469
resourceId={resourceId}
427470
isPending={isPending}
428-
refetch={refetch}
471+
schemaMutate={schemaMutate}
472+
isSchemaLoading={isSchemaLoading}
429473
data={
430474
payload?.datasetResources?.filter(
431475
(item: any) => item.id === resourceId

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

Lines changed: 5 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,14 @@ export const ResourceSchema = ({
6060
resourceId,
6161
isPending,
6262
data,
63-
refetch,
63+
schemaMutate,
64+
isSchemaLoading
6465
}: any) => {
6566

6667
const [updatedData, setUpdatedData] = React.useState<any>(data);
6768

6869
React.useEffect(() => {
69-
if (data && data.length > 0) {
70+
if (data) {
7071
setUpdatedData(data);
7172
}
7273
}, [data]);
@@ -87,35 +88,6 @@ export const ResourceSchema = ({
8788
};
8889

8990
setSchema(updatedData);
90-
91-
const resetSchema: any = graphql(`
92-
mutation resetFileResourceSchema($resourceId: UUID!) {
93-
resetFileResourceSchema(resourceId: $resourceId) {
94-
... on TypeResource {
95-
id
96-
schema {
97-
format
98-
description
99-
id
100-
fieldName
101-
}
102-
}
103-
}
104-
}
105-
`);
106-
107-
const { mutate, isLoading } = useMutation(
108-
(data: { resourceId: string }) => GraphQL(resetSchema, data),
109-
{
110-
onSuccess: () => {
111-
refetch();
112-
},
113-
onError: (err: any) => {
114-
console.log('Error ::: ', err);
115-
},
116-
}
117-
);
118-
11991
const options = [
12092
{
12193
label: 'Integer',
@@ -178,7 +150,7 @@ export const ResourceSchema = ({
178150
};
179151

180152
const setFields = () => {
181-
mutate({
153+
schemaMutate({
182154
resourceId: resourceId,
183155
});
184156
};
@@ -206,7 +178,7 @@ export const ResourceSchema = ({
206178
be changed in Access Models.
207179
</Text>
208180
<div className="mt-3">
209-
{isPending || isLoading ? (
181+
{isPending || isSchemaLoading ? (
210182
<div className=" mt-8 flex justify-center">
211183
<Spinner size={30} />
212184
</div>

0 commit comments

Comments
 (0)