From a3ff758874d5c1cff2298d027c0ffe8c69d2a1c4 Mon Sep 17 00:00:00 2001 From: Sven Grossmann Date: Mon, 19 Sep 2022 11:45:21 +0200 Subject: [PATCH] ElasticSearch: Fix dispatching queries at a wrong time (#55225) * Loki: Fix running queries without an `expr` * rever previous change * only dispatch `initQuery` if the DS is uninitialized * moved `isUninitialized` to static var --- .../QueryEditor/ElasticsearchQueryContext.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx b/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx index 8b80c98b84f..9e25bb96620 100644 --- a/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx +++ b/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx @@ -1,4 +1,4 @@ -import React, { Context, createContext, PropsWithChildren, useCallback, useContext, useEffect } from 'react'; +import React, { Context, createContext, PropsWithChildren, useCallback, useContext, useEffect, useState } from 'react'; import { TimeRange } from '@grafana/data'; @@ -54,14 +54,16 @@ export const ElasticsearchProvider = ({ const isUninitialized = !query.metrics || !query.bucketAggs || query.query === undefined; + const [shouldRunInit, setShouldRunInit] = useState(isUninitialized); + // This initializes the query by dispatching an init action to each reducer. // useStatelessReducer will then call `onChange` with the newly generated query - useEffect(() => { - if (isUninitialized) { + if (shouldRunInit) { dispatch(initQuery()); + setShouldRunInit(false); } - }); + }, [shouldRunInit, dispatch]); if (isUninitialized) { return null;