mirror of
				https://github.com/grafana/grafana.git
				synced 2025-02-25 18:55:37 -06:00 
			
		
		
		
	Alerting: automatically select last expression (#48787)
This commit is contained in:
		@@ -29,9 +29,20 @@ export const ConditionField: FC = () => {
 | 
			
		||||
    [queries]
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  const expressions = useMemo(() => {
 | 
			
		||||
    return queries.filter((query) => query.datasourceUid === ExpressionDatasourceUID);
 | 
			
		||||
  }, [queries]);
 | 
			
		||||
 | 
			
		||||
  // automatically use the last expression when new expressions have been added
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    const lastExpression = last(expressions);
 | 
			
		||||
    if (lastExpression) {
 | 
			
		||||
      setValue('condition', lastExpression.refId, { shouldValidate: true });
 | 
			
		||||
    }
 | 
			
		||||
  }, [expressions, setValue]);
 | 
			
		||||
 | 
			
		||||
  // reset condition if option no longer exists or if it is unset, but there are options available
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    const expressions = queries.filter((query) => query.datasourceUid === ExpressionDatasourceUID);
 | 
			
		||||
    const lastExpression = last(expressions);
 | 
			
		||||
    const conditionExists = options.find(({ value }) => value === condition);
 | 
			
		||||
 | 
			
		||||
@@ -40,7 +51,7 @@ export const ConditionField: FC = () => {
 | 
			
		||||
    } else if (!condition && lastExpression) {
 | 
			
		||||
      setValue('condition', lastExpression.refId, { shouldValidate: true });
 | 
			
		||||
    }
 | 
			
		||||
  }, [condition, options, queries, setValue]);
 | 
			
		||||
  }, [condition, expressions, options, setValue]);
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <Field
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user