From 3ad1263097986d6dc6a29acf9ca6023f3aed7eec Mon Sep 17 00:00:00 2001 From: Konrad Lalik Date: Tue, 24 May 2022 10:51:43 +0200 Subject: [PATCH] Alerting: Use RadioButtonList component to select alert condition (#49422) --- .../components/rule-editor/ConditionField.tsx | 74 +++++++++---------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/public/app/features/alerting/unified/components/rule-editor/ConditionField.tsx b/public/app/features/alerting/unified/components/rule-editor/ConditionField.tsx index fdf03057116..a3eb1411c58 100644 --- a/public/app/features/alerting/unified/components/rule-editor/ConditionField.tsx +++ b/public/app/features/alerting/unified/components/rule-editor/ConditionField.tsx @@ -3,7 +3,7 @@ import React, { FC, useEffect, useMemo } from 'react'; import { useFormContext } from 'react-hook-form'; import { SelectableValue } from '@grafana/data'; -import { Field, InputControl, Select } from '@grafana/ui'; +import { Alert, Card, Field, InputControl, RadioButtonList } from '@grafana/ui'; import { ExpressionDatasourceUID } from 'app/features/expressions/ExpressionDatasource'; import { RuleFormValues } from '../../types/rule-form'; @@ -18,21 +18,21 @@ export const ConditionField: FC = () => { const queries = watch('queries'); const condition = watch('condition'); - const options = useMemo( - (): SelectableValue[] => - queries - .filter((q) => !!q.refId) - .map((q) => ({ - value: q.refId, - label: q.refId, - })), - [queries] - ); - const expressions = useMemo(() => { return queries.filter((query) => query.datasourceUid === ExpressionDatasourceUID); }, [queries]); + const options = useMemo( + () => + queries + .filter((q) => !!q.refId) + .map>((q) => ({ + value: q.refId, + label: `${q.refId} - ${expressions.includes(q) ? 'expression' : 'query'}`, + })), + [queries, expressions] + ); + // automatically use the last expression when new expressions have been added useEffect(() => { const lastExpression = last(expressions); @@ -53,32 +53,30 @@ export const ConditionField: FC = () => { } }, [condition, expressions, options, setValue]); - return ( - - ( -