mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Alerting: Fix not showing metadata in contact point when rendering an existing alert rule (#98956)
show metadata in contact point when loading an existing alert rule
This commit is contained in:
parent
a6dffd7552
commit
8fabc66bd2
@ -1,5 +1,5 @@
|
||||
import { css } from '@emotion/css';
|
||||
import { useState } from 'react';
|
||||
import { useEffect, useState } from 'react';
|
||||
import { useFormContext } from 'react-hook-form';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
@ -7,6 +7,7 @@ import { CollapsableSection, Stack, useStyles2 } from '@grafana/ui';
|
||||
import { RuleFormValues } from 'app/features/alerting/unified/types/rule-form';
|
||||
import { AlertManagerDataSource } from 'app/features/alerting/unified/utils/datasource';
|
||||
|
||||
import { useContactPointsWithStatus } from '../../../contact-points/useContactPoints';
|
||||
import { ContactPointWithMetadata } from '../../../contact-points/utils';
|
||||
|
||||
import { ContactPointDetails } from './contactPoint/ContactPointDetails';
|
||||
@ -26,12 +27,26 @@ export function AlertManagerManualRouting({ alertManager }: AlertManagerManualRo
|
||||
const [selectedContactPointWithMetadata, setSelectedContactPointWithMetadata] = useState<
|
||||
ContactPointWithMetadata | undefined
|
||||
>();
|
||||
const { watch } = useFormContext<RuleFormValues>();
|
||||
|
||||
const contactPointInForm = watch(`contactPoints.${alertManagerName}.selectedContactPoint`);
|
||||
const { contactPoints } = useContactPointsWithStatus({
|
||||
// we only fetch the contact points with metadata for the first time we render an existing alert rule
|
||||
alertmanager: alertManagerName,
|
||||
skip: Boolean(selectedContactPointWithMetadata),
|
||||
});
|
||||
const contactPointWithMetadata = contactPoints.find((cp) => cp.name === contactPointInForm);
|
||||
|
||||
useEffect(() => {
|
||||
if (contactPointWithMetadata && !selectedContactPointWithMetadata) {
|
||||
onSelectContactPoint(contactPointWithMetadata);
|
||||
}
|
||||
}, [contactPointWithMetadata, selectedContactPointWithMetadata]);
|
||||
|
||||
const onSelectContactPoint = (contactPoint?: ContactPointWithMetadata) => {
|
||||
setSelectedContactPointWithMetadata(contactPoint);
|
||||
};
|
||||
|
||||
const { watch } = useFormContext<RuleFormValues>();
|
||||
const hasRouteSettings =
|
||||
watch(`contactPoints.${alertManagerName}.overrideGrouping`) ||
|
||||
watch(`contactPoints.${alertManagerName}.overrideTimings`) ||
|
||||
|
Loading…
Reference in New Issue
Block a user