|
|
|
|
@ -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 |
|
|
|
|
|