From 2c917332842b3916c679079f5506aaccb8818a63 Mon Sep 17 00:00:00 2001 From: Yongtae Park Date: Tue, 7 Jan 2025 19:58:35 +0900 Subject: [PATCH] fix(widget-header): apply new widget header planning Signed-off-by: samuel.park --- .../widgets/_components/WidgetFormOverlay.vue | 5 +++++ .../WidgetFormOverlayStep2WidgetForm.vue | 2 -- .../modules/widgets/_store/widget-generate-store.ts | 9 ++++++++- .../constant/default-value-registry.ts | 13 +++++++++++-- .../widgets/_widget-field-value-manager/index.ts | 12 +++++++++--- 5 files changed, 33 insertions(+), 8 deletions(-) diff --git a/apps/web/src/common/modules/widgets/_components/WidgetFormOverlay.vue b/apps/web/src/common/modules/widgets/_components/WidgetFormOverlay.vue index 3b59915d42..2d9452ddcf 100644 --- a/apps/web/src/common/modules/widgets/_components/WidgetFormOverlay.vue +++ b/apps/web/src/common/modules/widgets/_components/WidgetFormOverlay.vue @@ -99,6 +99,11 @@ const handleClickContinue = async () => { if (widgetGenerateState.widget?.state === 'ACTIVE') { _updateParams.state = 'INACTIVE'; } + if (widgetGenerateState.widget?.options?.widgetHeader) { + _updateParams.options = { + widgetHeader: widgetGenerateState.widget?.options?.widgetHeader, + }; + } await widgetGenerateStore.updateWidget(_updateParams); } widgetGenerateStore.setOverlayStep(2); diff --git a/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2WidgetForm.vue b/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2WidgetForm.vue index 449fd9d86d..6ccb7d9f58 100644 --- a/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2WidgetForm.vue +++ b/apps/web/src/common/modules/widgets/_components/WidgetFormOverlayStep2WidgetForm.vue @@ -155,8 +155,6 @@ const changeWidgetType = (widgetName: string) => { checkDefaultValidation(); }; -// const checkFormDependencies = (changedFieldName: string):string[] => state.widgetConfigDependencies[changedFieldName] || []; - onMounted(() => { if (widgetGenerateGetters.selectedDataTable?.operator === DATA_TABLE_OPERATOR.PIVOT && UNSUPPORTED_CHARTS_IN_PIVOT.includes(widgetGenerateState.selectedWidgetName)) { changeWidgetType('table'); diff --git a/apps/web/src/common/modules/widgets/_store/widget-generate-store.ts b/apps/web/src/common/modules/widgets/_store/widget-generate-store.ts index e9d8311a0a..05fcf4da90 100644 --- a/apps/web/src/common/modules/widgets/_store/widget-generate-store.ts +++ b/apps/web/src/common/modules/widgets/_store/widget-generate-store.ts @@ -315,7 +315,14 @@ export const useWidgetGenerateStore = defineStore('widget-generate', () => { vars: dashboardDetailGetters.dashboardInfo?.vars || {}, }); if (state.widget?.state === 'ACTIVE') { - await actions.updateWidget({ state: 'INACTIVE' }); + await actions.updateWidget({ + state: 'INACTIVE', + options: { + widgetHeader: { + ...state.widget?.options?.widgetHeader, + }, + }, + }); } } state.dataTables = state.dataTables.map((dataTable) => (dataTable.data_table_id === result.data_table_id ? result : dataTable)); diff --git a/apps/web/src/common/modules/widgets/_widget-field-value-manager/constant/default-value-registry.ts b/apps/web/src/common/modules/widgets/_widget-field-value-manager/constant/default-value-registry.ts index ac510603c8..2beb9a421b 100644 --- a/apps/web/src/common/modules/widgets/_widget-field-value-manager/constant/default-value-registry.ts +++ b/apps/web/src/common/modules/widgets/_widget-field-value-manager/constant/default-value-registry.ts @@ -90,7 +90,9 @@ export const widgetFieldDefaultValueMap: DefaultValueRegistry = { }, groupBy: {}, widgetHeader: { - toggleValue: false, + toggleValue: true, + title: '', + description: '', }, icon: { toggleValue: true, @@ -338,7 +340,14 @@ export const widgetFieldDefaultValueSetterRegistry: WidgetFieldDefaultValueSette return result; }, - widgetHeader: () => cloneDeep(widgetFieldDefaultValueMap.widgetHeader), + widgetHeader: (widgetConfig) => { + const result = cloneDeep(widgetFieldDefaultValueMap.widgetHeader); + + return { + ...result, + title: widgetConfig.meta.title, + }; + }, icon: (widgetConfig) => { const _fieldsSchema = integrateFieldsSchema(widgetConfig.requiredFieldsSchema, widgetConfig.optionalFieldsSchema); const iconOptions = (_fieldsSchema.icon?.options ?? {}) as IconOptions; diff --git a/apps/web/src/common/modules/widgets/_widget-field-value-manager/index.ts b/apps/web/src/common/modules/widgets/_widget-field-value-manager/index.ts index 912f729007..04c0eadf86 100644 --- a/apps/web/src/common/modules/widgets/_widget-field-value-manager/index.ts +++ b/apps/web/src/common/modules/widgets/_widget-field-value-manager/index.ts @@ -116,14 +116,20 @@ export default class WidgetFieldValueManager { updateWidgetType(newWidgetConfig: WidgetConfig): void { this.updateWidgetConfig(newWidgetConfig); - this.updateModifiedData(WidgetFieldValueManager.applyDefaultValue({}, newWidgetConfig, this.dataTable)); + const originDataWithExistingHeaderValue = { + widgetHeader: this.originData.value.widgetHeader, + }; + this.updateModifiedData(WidgetFieldValueManager.applyDefaultValue(originDataWithExistingHeaderValue, newWidgetConfig, this.dataTable)); this.validationErrors = {}; } updateDataTableAndOriginData(dataTable: PublicDataTableModel|PrivateDataTableModel, data: WidgetFieldValueMap): void { this.dataTable = dataTable; - this.originData.value = { ...data }; - this.updateModifiedData(WidgetFieldValueManager.applyDefaultValue(data, this.widgetConfig, dataTable)); + this.originData.value = { + ...data, + widgetHeader: this.originData.value.widgetHeader, + }; + this.updateModifiedData(WidgetFieldValueManager.applyDefaultValue(this.originData.value, this.widgetConfig, dataTable)); this.validationErrors = {}; } }