diff --git a/src/app/[orgId]/settings/alerting/create/page.tsx b/src/app/[orgId]/settings/alerting/create/page.tsx index 9f3f20611..f431e9f68 100644 --- a/src/app/[orgId]/settings/alerting/create/page.tsx +++ b/src/app/[orgId]/settings/alerting/create/page.tsx @@ -3,10 +3,12 @@ import AlertRuleGraphEditor from "@app/components/alert-rule-editor/AlertRuleGraphEditor"; import HeaderTitle from "@app/components/SettingsSectionTitle"; import { defaultFormValues } from "@app/lib/alertRuleForm"; +import { useEnvContext } from "@app/hooks/useEnvContext"; import { usePaidStatus } from "@app/hooks/usePaidStatus"; import { tierMatrix } from "@server/lib/billing/tierMatrix"; -import { useParams } from "next/navigation"; +import { useParams, useRouter } from "next/navigation"; import { useTranslations } from "next-intl"; +import { useEffect } from "react"; export default function NewAlertRulePage() { const params = useParams(); @@ -14,6 +16,19 @@ export default function NewAlertRulePage() { const t = useTranslations(); const { isPaidUser } = usePaidStatus(); const isPaid = isPaidUser(tierMatrix.alertingRules); + const { env } = useEnvContext(); + const router = useRouter(); + const disableEnterpriseFeatures = env.flags.disableEnterpriseFeatures; + + useEffect(() => { + if (disableEnterpriseFeatures) { + router.replace(`/${orgId}/settings/alerting/rules`); + } + }, [disableEnterpriseFeatures, orgId, router]); + + if (disableEnterpriseFeatures) { + return null; + } return ( <> diff --git a/src/app/navigation.tsx b/src/app/navigation.tsx index 24dc02a19..1989161a9 100644 --- a/src/app/navigation.tsx +++ b/src/app/navigation.tsx @@ -212,11 +212,15 @@ export const orgNavSections = ( title: "sidebarManagement", icon: , items: [ - { - title: "sidebarAlerting", - href: "/{orgId}/settings/alerting", - icon: - }, + ...(!env?.flags.disableEnterpriseFeatures + ? [ + { + title: "sidebarAlerting", + href: "/{orgId}/settings/alerting", + icon: + } + ] + : []), { title: "sidebarProvisioning", href: "/{orgId}/settings/provisioning", diff --git a/src/components/AlertingRulesTable.tsx b/src/components/AlertingRulesTable.tsx index f8fcf468d..ae0d564e8 100644 --- a/src/components/AlertingRulesTable.tsx +++ b/src/components/AlertingRulesTable.tsx @@ -134,7 +134,9 @@ export default function AlertingRulesTable({ }: AlertingRulesTableProps) { const router = useRouter(); const t = useTranslations(); - const api = createApiClient(useEnvContext()); + const envContext = useEnvContext(); + const api = createApiClient(envContext); + const { env } = envContext; const [isRefreshing, startRefresh] = useTransition(); const { isPaidUser } = usePaidStatus(); const isPaid = isPaidUser(tierMatrix.alertingRules); @@ -426,9 +428,15 @@ export default function AlertingRulesTable({ searchQuery={query} manualFiltering manualSorting - onAdd={() => { - router.push(`/${orgId}/settings/alerting/create`); - }} + onAdd={ + !env.flags.disableEnterpriseFeatures + ? () => { + router.push( + `/${orgId}/settings/alerting/create` + ); + } + : undefined + } onRefresh={refreshList} isRefreshing={isRefreshing || isFiltering} addButtonText={t("alertingAddRule")}