Skip to content

Commit 5dbdc2d

Browse files
committed
integrate chart creation in sheet
1 parent f12a102 commit 5dbdc2d

File tree

1 file changed

+46
-20
lines changed
  • app/[locale]/dashboard/[entityType]/[entitySlug]/dataset/[id]/edit/charts/components

1 file changed

+46
-20
lines changed

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

Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { UUID } from 'crypto';
12
import React, { useCallback, useEffect, useRef, useState } from 'react';
23
import { useParams } from 'next/navigation';
34
import { renderGeoJSON } from '@/geo_json/render_geojson';
@@ -123,6 +124,18 @@ const getResourceChartDetails: any = graphql(`
123124
}
124125
`);
125126

127+
const CreateResourceChart: any = graphql(`
128+
mutation GenerateResourceChart($resource: UUID!) {
129+
addResourceChart(resource: $resource) {
130+
__typename
131+
... on TypeResourceChart {
132+
id
133+
name
134+
}
135+
}
136+
}
137+
`);
138+
126139
const ChartsVisualize: React.FC<VisualizationProps> = ({
127140
setType,
128141
chartId,
@@ -153,10 +166,6 @@ const ChartsVisualize: React.FC<VisualizationProps> = ({
153166
},
154167
{
155168
chartDetailsId: chartId,
156-
157-
options: {
158-
skip: chartId === '',
159-
},
160169
}
161170
),
162171
{}
@@ -179,6 +188,33 @@ const ChartsVisualize: React.FC<VisualizationProps> = ({
179188
)
180189
);
181190

191+
const resourceChart: {
192+
mutate: any;
193+
isLoading: any;
194+
} = useMutation(
195+
(data: { resource: UUID }) =>
196+
GraphQL(
197+
CreateResourceChart,
198+
{
199+
[params.entityType]: params.entitySlug,
200+
},
201+
data
202+
),
203+
{
204+
onSuccess: (res: any) => {
205+
toast('Resource Chart Created Successfully');
206+
refetch();
207+
setIsSheetOpen(false);
208+
setType('visualize');
209+
setChartId(res.addResourceChart.id);
210+
chartsListRefetch();
211+
},
212+
onError: (err: any) => {
213+
toast(`Received ${err} while deleting chart `);
214+
},
215+
}
216+
);
217+
182218
const [isSheetOpen, setIsSheetOpen] = useState(false);
183219
const initialChartData = {
184220
chartId: '',
@@ -203,15 +239,7 @@ const ChartsVisualize: React.FC<VisualizationProps> = ({
203239

204240
useEffect(() => {
205241
if (data) {
206-
if (!chartId && data?.datasetResources.length) {
207-
// Set initial resource schema and chart data
208-
const initialResource = data.datasetResources[0];
209-
setResourceSchema(initialResource.schema || []);
210-
setChartData((prevData) => ({
211-
...prevData,
212-
resource: initialResource.id,
213-
}));
214-
} else if (chartData.resource) {
242+
if (chartData.resource) {
215243
const resource = data?.datasetResources.find(
216244
(resource: any) => resource.id === chartData.resource
217245
);
@@ -355,13 +383,11 @@ const ChartsVisualize: React.FC<VisualizationProps> = ({
355383
<Text variant="bodyLg">Select Charts</Text>
356384
<div className="flex items-center gap-3">
357385
<Button
358-
className=" h-fit w-fit"
359-
size="medium"
360-
onClick={(e) => {
361-
setChartData(initialChartData);
362-
setChartId('');
363-
setIsSheetOpen(false);
364-
}}
386+
onClick={(e) =>
387+
resourceChart.mutate({
388+
resource: data?.datasetResources[0].id,
389+
})
390+
}
365391
>
366392
Visualize Data
367393
</Button>

0 commit comments

Comments
 (0)