\n {alert.status.state === AlertState.Suppressed && (\n
\n \n Manage silences\n \n \n )}\n {alert.status.state === AlertState.Active && (\n
\n \n Silence\n \n \n )}\n {isSeeSourceButtonEnabled && alert.generatorURL && (\n
\n See source\n \n )}\n
\n {Object.entries(alert.annotations).map(([annotationKey, annotationValue]) => (\n \n Receivers:{' '}\n {alert.receivers\n .map(({ name }) => name)\n .filter((name) => !!name)\n .join(', ')}\n
\n >\n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n button: css`\n & + & {\n margin-left: ${theme.spacing(1)};\n }\n `,\n actionsRow: css`\n padding: ${theme.spacing(2, 0)} !important;\n border-bottom: 1px solid ${theme.colors.border.medium};\n `,\n receivers: css`\n padding: ${theme.spacing(1, 0)};\n `,\n});\n","import { css } from '@emotion/css';\nimport React, { useMemo } from 'react';\n\nimport { GrafanaTheme2, intervalToAbbreviatedDurationString } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport { AlertmanagerAlert } from 'app/plugins/datasource/alertmanager/types';\n\nimport { AlertLabels } from '../AlertLabels';\nimport { DynamicTableColumnProps, DynamicTableItemProps } from '../DynamicTable';\nimport { DynamicTableWithGuidelines } from '../DynamicTableWithGuidelines';\nimport { AmAlertStateTag } from '../silences/AmAlertStateTag';\n\nimport { AlertDetails } from './AlertDetails';\n\ninterface Props {\n alerts: AlertmanagerAlert[];\n alertManagerSourceName: string;\n}\n\ntype AlertGroupAlertsTableColumnProps = DynamicTableColumnProps