diff --git a/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2.vue b/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2.vue index 0aa4e9b910..68b1b67d40 100644 --- a/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2.vue +++ b/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2.vue @@ -99,26 +99,21 @@ const { widgetId: computed(() => widgetGenerateState.widgetId), }); +let fieldManager: WidgetFieldValueManager; + const state = reactive({ isPrivate: computed(() => !!widgetGenerateState.widgetId?.startsWith('private')), selectedDataTable: computed(() => dataTableList.value.find((d) => d.data_table_id === widgetGenerateState.selectedDataTableId)), mounted: false, fieldManager: computed(() => { - const _widgetConfig = getWidgetConfig(widgetGenerateState.selectedWidgetName); - - if ( - !widgetGenerateState.selectedWidgetName - || widgetLoading.value - || !widget.value - || !state.selectedDataTable - || !_widgetConfig - ) return undefined; - - return new WidgetFieldValueManager( - _widgetConfig, - state.selectedDataTable, - cloneDeep(widget.value?.options) || {}, - ); + if (!fieldManager && widget.value) { + fieldManager = new WidgetFieldValueManager( + state.widgetConfig, + state.selectedDataTable, + cloneDeep(widget.value?.options) || {}, + ); + } + return fieldManager; }), value: computed(() => state.fieldManager?.data?.granularity), widgetConfig: computed(() => getWidgetConfig(widgetGenerateState.selectedWidgetName)), diff --git a/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2WidgetForm.vue b/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2WidgetForm.vue index f0d9fa381d..19029221ab 100644 --- a/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2WidgetForm.vue +++ b/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2WidgetForm.vue @@ -110,7 +110,7 @@ const state = reactive({ label: d.name, icon: d.data_type === DATA_TABLE_TYPE.TRANSFORMED ? 'ic_transform-data' : 'ic_service_data-sources', }))), - selectedDataTableId: computed(() => widgetGenerateState.selectedDataTableId), + selectedDataTableId: computed(() => widgetGenerateState.selectedDataTableId), errorModalCurrentType: undefined as 'default'|'geoMap'|undefined, }); diff --git a/apps/web/src/common/modules/widgets/_composables/use-data-table-cascade-update.ts b/apps/web/src/common/modules/widgets/_composables/use-data-table-cascade-update.ts index 3f307da111..f703cca0cd 100644 --- a/apps/web/src/common/modules/widgets/_composables/use-data-table-cascade-update.ts +++ b/apps/web/src/common/modules/widgets/_composables/use-data-table-cascade-update.ts @@ -56,8 +56,8 @@ export const useDataTableCascadeUpdate = ({ widgetId }: UseDataTableCascadeUpdat }; const cascadeUpdateDataTable = async (dataTableId: string) => { - const children = _state.dataTableReferenceMap[dataTableId].children; - return children.reduce((chain, childId) => chain.then(async () => { + const children = _state.dataTableReferenceMap[dataTableId]?.children; + return children?.reduce((chain, childId) => chain.then(async () => { try { widgetGenerateStore.setDataTableCasCadeUpdateLoadingMap({ ...widgetGenerateState.dataTableCasCadeUpdateLoadingMap, diff --git a/apps/web/src/common/modules/widgets/_composables/use-widget-data-table-list-query.ts b/apps/web/src/common/modules/widgets/_composables/use-widget-data-table-list-query.ts index 1e1da9e641..30d299184e 100644 --- a/apps/web/src/common/modules/widgets/_composables/use-widget-data-table-list-query.ts +++ b/apps/web/src/common/modules/widgets/_composables/use-widget-data-table-list-query.ts @@ -50,13 +50,13 @@ export const useWidgetDataTableListQuery = ({ /* Query Keys */ const { key: publicDataTableListQueryKey, params: publicDataTableListParams } = useServiceQueryKey('dashboard', 'public-data-table', 'list', { - contextKey: widgetId.value, + contextKey: computed(() => widgetId.value), params: computed(() => ({ widget_id: widgetId.value as string, })), }); const { key: privateDataTableListQueryKey, params: privateDataTableListParams } = useServiceQueryKey('dashboard', 'private-data-table', 'list', { - contextKey: widgetId.value, + contextKey: computed(() => widgetId.value), params: computed(() => ({ widget_id: widgetId.value as string, })),