From 52f71d49800d3c29fbd1e4ec7ed52fa20f03883c Mon Sep 17 00:00:00 2001 From: Yongtae Park Date: Fri, 21 Feb 2025 17:46:26 +0900 Subject: [PATCH 1/2] fix(alert): solve webhook icon issue Signed-off-by: samuel.park --- .../services/alert-manager/components/ServiceListContent.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/services/alert-manager/components/ServiceListContent.vue b/apps/web/src/services/alert-manager/components/ServiceListContent.vue index a3b12e7abc..0c373099e6 100644 --- a/apps/web/src/services/alert-manager/components/ServiceListContent.vue +++ b/apps/web/src/services/alert-manager/components/ServiceListContent.vue @@ -58,7 +58,7 @@ const state = reactive({ const getEscalationPolicyLabel = (id: string): string => storeState.escalationPolicy[id]?.label || ''; const getWebhookIcon = (id: string): string|undefined => { - const webhook = storeState.webhook[id].data; + const webhook = storeState.webhook[id]?.data; if (!webhook) return undefined; return storeState.plugins[webhook.plugin_info.plugin_id]?.icon || ''; }; From db9e03bef0293634d77bb0380ced6e192c12ef89 Mon Sep 17 00:00:00 2001 From: Yongtae Park Date: Fri, 21 Feb 2025 17:47:52 +0900 Subject: [PATCH 2/2] fix(alert): add defensive code Signed-off-by: samuel.park --- .../services/alert-manager/components/AlertDetailInfoTable.vue | 2 +- .../services/alert-manager/components/AlertsManagementTable.vue | 2 +- .../asset-inventory-v1/components/CloudServiceAlertsTab.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/web/src/services/alert-manager/components/AlertDetailInfoTable.vue b/apps/web/src/services/alert-manager/components/AlertDetailInfoTable.vue index 53c5444b3b..5a18953e30 100644 --- a/apps/web/src/services/alert-manager/components/AlertDetailInfoTable.vue +++ b/apps/web/src/services/alert-manager/components/AlertDetailInfoTable.vue @@ -70,7 +70,7 @@ const tableState = reactive({ const getCreatedByNames = (id: string): string => { if (id.includes('webhook')) { - return storeState.webhook[id].label || id; + return storeState.webhook[id]?.label || id; } return id || '--'; }; diff --git a/apps/web/src/services/alert-manager/components/AlertsManagementTable.vue b/apps/web/src/services/alert-manager/components/AlertsManagementTable.vue index 4ea3e1e0f4..24eec64997 100644 --- a/apps/web/src/services/alert-manager/components/AlertsManagementTable.vue +++ b/apps/web/src/services/alert-manager/components/AlertsManagementTable.vue @@ -145,7 +145,7 @@ const labelMenuItemsHandler = (): AutocompleteHandler => async (inputText: strin }; const getCreatedByNames = (id: string): string => { if (id.includes('webhook')) { - return storeState.webhook[id].label || id; + return storeState.webhook[id]?.label || id; } return id; }; diff --git a/apps/web/src/services/asset-inventory-v1/components/CloudServiceAlertsTab.vue b/apps/web/src/services/asset-inventory-v1/components/CloudServiceAlertsTab.vue index e087fac05d..e1132d87f2 100644 --- a/apps/web/src/services/asset-inventory-v1/components/CloudServiceAlertsTab.vue +++ b/apps/web/src/services/asset-inventory-v1/components/CloudServiceAlertsTab.vue @@ -144,7 +144,7 @@ const fetchAlerts = async () => { }; const getCreatedByNames = (id: string): string => { if (id.includes('webhook')) { - return storeState.webhook[id].label || id; + return storeState.webhook[id]?.label || id; } return id; };