diff --git a/apps/web/src/lib/config/composables/use-is-alert-manager-v2-enabled.ts b/apps/web/src/lib/config/composables/use-is-alert-manager-v2-enabled.ts index 201ad95d5f..045803d86f 100644 --- a/apps/web/src/lib/config/composables/use-is-alert-manager-v2-enabled.ts +++ b/apps/web/src/lib/config/composables/use-is-alert-manager-v2-enabled.ts @@ -1,4 +1,8 @@ +import type { ComputedRef } from 'vue'; +import { computed } from 'vue'; + import { useDomainStore } from '@/store/domain/domain-store'; +import { pinia } from '@/store/pinia'; import config from '@/lib/config'; @@ -6,11 +10,11 @@ import config from '@/lib/config'; * This hook will be removed or refactored once the global config is improved. * */ -export const useIsAlertManagerV2Enabled = (): boolean => { - const domainStore = useDomainStore(); +export const useIsAlertManagerV2Enabled = (): ComputedRef => { + const domainStore = useDomainStore(pinia); const domainStoreState = domainStore.state; const enabledDomains = config.get('ADVANCED_SERVICE')?.alert_manager_v2 ?? []; - return enabledDomains.includes(domainStoreState.domainId); + return computed(() => enabledDomains.includes(domainStoreState.domainId)); }; diff --git a/apps/web/src/services/project-v1/components/ProjectDetailTabHeader.vue b/apps/web/src/services/project-v1/components/ProjectDetailTabHeader.vue index d5d352cfa3..94c1618d33 100644 --- a/apps/web/src/services/project-v1/components/ProjectDetailTabHeader.vue +++ b/apps/web/src/services/project-v1/components/ProjectDetailTabHeader.vue @@ -343,7 +343,7 @@ const getProjectAlertActivated = async () => { /* Watchers */ watch(() => projectDetailPageGetters.projectType, async () => { - if (!isAlertManagerV2Enabled) { + if (!isAlertManagerV2Enabled.value) { await Promise.allSettled([ getProjectAlertActivated(), listWebhooks(), diff --git a/apps/web/src/services/project-v1/pages/ProjectDetailTabPage.vue b/apps/web/src/services/project-v1/pages/ProjectDetailTabPage.vue index e9967e771a..7b004020be 100644 --- a/apps/web/src/services/project-v1/pages/ProjectDetailTabPage.vue +++ b/apps/web/src/services/project-v1/pages/ProjectDetailTabPage.vue @@ -107,7 +107,7 @@ const singleItemTabState = reactive({ name: PROJECT_ROUTE.DETAIL.TAB.SUMMARY._NAME, label: i18n.t('PROJECT.DETAIL.TAB_SUMMARY'), }, - ...(isAlertManagerV2Enabled ? [] : [ + ...(isAlertManagerV2Enabled.value ? [] : [ { name: PROJECT_ROUTE.DETAIL.TAB.ALERT._NAME, label: i18n.t('PROJECT.DETAIL.TAB_ALERT'), diff --git a/apps/web/src/services/project-v1/pages/ProjectSummaryPage.vue b/apps/web/src/services/project-v1/pages/ProjectSummaryPage.vue index acca1a0fa6..3a7937b30e 100644 --- a/apps/web/src/services/project-v1/pages/ProjectSummaryPage.vue +++ b/apps/web/src/services/project-v1/pages/ProjectSummaryPage.vue @@ -54,7 +54,7 @@ const getProjectAlertConfig = async () => { }; watch(() => props.id, () => { - if (!isAlertManagerV2Enabled) getProjectAlertConfig(); + if (!isAlertManagerV2Enabled.value) getProjectAlertConfig(); }, { immediate: true }); diff --git a/apps/web/src/store/reference/escalation-policy-reference-store.ts b/apps/web/src/store/reference/escalation-policy-reference-store.ts index ab71eb3361..689d1578f6 100644 --- a/apps/web/src/store/reference/escalation-policy-reference-store.ts +++ b/apps/web/src/store/reference/escalation-policy-reference-store.ts @@ -60,7 +60,7 @@ export const useEscalationPolicyReferenceStore = defineStore('reference-escalati const referenceMap: EscalationPolicyReferenceMap = {}; try { - const fetcher = isAlertManagerV2Enabled + const fetcher = isAlertManagerV2Enabled.value ? SpaceConnector.clientV2.alertManager.escalationPolicy.list>({ query: { only: ['escalation_policy_id', 'name', 'service_id'], diff --git a/apps/web/src/store/reference/service-reference-store.ts b/apps/web/src/store/reference/service-reference-store.ts index c88d568c2a..1cca433ac4 100644 --- a/apps/web/src/store/reference/service-reference-store.ts +++ b/apps/web/src/store/reference/service-reference-store.ts @@ -9,14 +9,12 @@ import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; import type { ServiceListParameters } from '@/schema/alert-manager/service/api-verbs/list'; import type { ServiceModel } from '@/schema/alert-manager/service/model'; -import { useDomainStore } from '@/store/domain/domain-store'; import type { ReferenceLoadOptions, ReferenceItem, ReferenceMap, ReferenceTypeInfo, } from '@/store/reference/type'; import { useUserStore } from '@/store/user/user-store'; -import config from '@/lib/config'; import { useIsAlertManagerV2Enabled } from '@/lib/config/composables/use-is-alert-manager-v2-enabled'; import { MANAGED_VARIABLE_MODELS } from '@/lib/variable-models/managed-model-config/base-managed-model-config'; @@ -30,7 +28,6 @@ let lastLoadedTime = 0; export const useServiceReferenceStore = defineStore('reference-service', () => { const userStore = useUserStore(); - const domainStore = useDomainStore(); const isAlertManagerV2Enabled = useIsAlertManagerV2Enabled(); const state = reactive({ @@ -52,9 +49,6 @@ export const useServiceReferenceStore = defineStore('reference-service', () => { }); const load = async (options?: ReferenceLoadOptions) => { - const isAlertManagerVersionV2 = (config.get('ADVANCED_SERVICE')?.alert_manager_v2 ?? []).includes(domainStore.state.domainId); - if (!isAlertManagerVersionV2) return; - const currentTime = new Date().getTime(); if ( @@ -69,7 +63,7 @@ export const useServiceReferenceStore = defineStore('reference-service', () => { }, }; - if (!isAlertManagerV2Enabled) return; + if (!isAlertManagerV2Enabled.value) return; try { const { results } = await SpaceConnector.clientV2.alertManager.service.list>(params); diff --git a/apps/web/src/store/reference/webhook-reference-store.ts b/apps/web/src/store/reference/webhook-reference-store.ts index 2814e5106e..31f04559e7 100644 --- a/apps/web/src/store/reference/webhook-reference-store.ts +++ b/apps/web/src/store/reference/webhook-reference-store.ts @@ -60,7 +60,7 @@ export const useWebhookReferenceStore = defineStore('reference-webhook', () => { const referenceMap: WebhookReferenceMap = {}; try { - const fetcher = isAlertManagerV2Enabled + const fetcher = isAlertManagerV2Enabled.value ? SpaceConnector.clientV2.alertManager.webhook.list> : SpaceConnector.clientV2.monitoring.webhook.list>;