@@ -58,6 +58,7 @@ import { useDashboardDetailInfoStore } from '@/services/dashboards/stores/dashbo
58
58
interface Props {
59
59
selected: boolean ;
60
60
item: PublicDataTableModel | PrivateDataTableModel ;
61
+ loading? : boolean ;
61
62
}
62
63
63
64
type DataTableModel = PublicDataTableModel | PrivateDataTableModel ;
@@ -246,7 +247,7 @@ const invalidateLoadQueries = async (data: DataTableModel) => {
246
247
],
247
248
});
248
249
};
249
- const { mutateAsync : updateDataTableAndCascadeUpdate } = useMutation ({
250
+ const { mutateAsync : updateDataTableMutation } = useMutation ({
250
251
mutationFn: fetcher .updateDataTableFn ,
251
252
onSuccess : async (data ) => {
252
253
const dataTableListQueryKey = state .isPrivate ? keys .privateDataTableListQueryKey : keys .publicDataTableListQueryKey ;
@@ -265,7 +266,6 @@ const { mutateAsync: updateDataTableAndCascadeUpdate } = useMutation({
265
266
return oldData ;
266
267
});
267
268
await invalidateLoadQueries (data );
268
- await cascadeUpdateDataTable (data .data_table_id );
269
269
270
270
setInitialDataTableForm ();
271
271
state .filterFormKey = getRandomId ();
@@ -284,6 +284,9 @@ const { mutateAsync: updateWidget } = useMutation({
284
284
? keys .privateWidgetQueryKey
285
285
: keys .publicWidgetQueryKey ;
286
286
queryClient .setQueryData (widgetQueryKey .value , () => data );
287
+
288
+ showSuccessMessage (i18n .t (' COMMON.WIDGETS.DATA_TABLE.FORM.UPDATE_DATA_TALBE_INVALID_SUCCESS' ), ' ' );
289
+ widgetGenerateStore .setSelectedDataTableId (state .dataTableId );
287
290
},
288
291
onError : (e ) => {
289
292
showErrorMessage (e .message , e );
@@ -351,18 +354,7 @@ const updateDataTable = async (): Promise<DataTableModel|undefined> => {
351
354
timediff: getTimeDiffValue (),
352
355
},
353
356
};
354
-
355
- const result = await updateDataTableAndCascadeUpdate (updateParams );
356
- if (widget .value ?.state === ' ACTIVE' ) {
357
- const _widgetOptions = cloneDeep (widget .value .options );
358
- const sanitizedOptions = sanitizeWidgetOptions (_widgetOptions , widget .value .widget_type , result );
359
- await updateWidget ({
360
- widget_id: widgetGenerateState .widgetId ,
361
- state: ' INACTIVE' ,
362
- options: sanitizedOptions ,
363
- });
364
- }
365
- return result ;
357
+ return updateDataTableMutation (updateParams );
366
358
};
367
359
const deleteDataTableFn = (params : DataTableDeleteParameters ): Promise <void > => {
368
360
if (params .data_table_id .startsWith (' private' )) {
@@ -447,8 +439,14 @@ const handleUpdateDataTable = async () => {
447
439
state .loading = true ;
448
440
const result = await updateDataTable ();
449
441
if (result ) {
450
- showSuccessMessage (i18n .t (' COMMON.WIDGETS.DATA_TABLE.FORM.UPDATE_DATA_TALBE_INVALID_SUCCESS' ), ' ' );
451
- widgetGenerateStore .setSelectedDataTableId (state .dataTableId );
442
+ const _widgetOptions = cloneDeep (widget .value ?.options );
443
+ const sanitizedOptions = sanitizeWidgetOptions (_widgetOptions , widget .value ?.widget_type , result );
444
+ await updateWidget ({
445
+ widget_id: widgetGenerateState .widgetId ,
446
+ state: ' INACTIVE' ,
447
+ options: sanitizedOptions ,
448
+ });
449
+ await cascadeUpdateDataTable (result .data_table_id );
452
450
}
453
451
setTimeout (() => {
454
452
state .loading = false ;
@@ -557,7 +555,7 @@ defineExpose({
557
555
/>
558
556
<widget-form-data-table-card-footer :disabled =" validationState.dataTableApplyInvalid"
559
557
:changed =" state.optionsChanged"
560
- :loading =" state.loading"
558
+ :loading =" state.loading || props.loading "
561
559
@delete =" handleClickDeleteDataTable"
562
560
@reset =" handleClickResetDataTable"
563
561
@update =" handleUpdateDataTable"
0 commit comments