From 82796fad98aabdcaa20e523d975f7bf625949e61 Mon Sep 17 00:00:00 2001 From: Matias Chomicki Date: Thu, 16 May 2024 18:09:50 +0200 Subject: [PATCH] Elasticsearch: queries no longer executed on-change (#87652) * Elasticsearch: queries no longer executed on-change * Elasticsearch: run query if it was previously undefined --- .../components/QueryEditor/ElasticsearchQueryContext.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx b/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx index dda0b664f53..6c41d99a18f 100644 --- a/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx +++ b/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx @@ -31,9 +31,11 @@ export const ElasticsearchProvider = ({ range, }: PropsWithChildren) => { const onStateChange = useCallback( - (query: ElasticsearchQuery) => { + (query: ElasticsearchQuery, prevQuery: ElasticsearchQuery) => { onChange(query); - onRunQuery(); + if (query.query === prevQuery.query || prevQuery.query === undefined) { + onRunQuery(); + } }, [onChange, onRunQuery] ); @@ -47,7 +49,7 @@ export const ElasticsearchProvider = ({ const dispatch = useStatelessReducer( // timeField is part of the query model, but its value is always set to be the one from datasource settings. - (newState) => onStateChange({ ...query, ...newState, timeField: datasource.timeField }), + (newState) => onStateChange({ ...query, ...newState, timeField: datasource.timeField }, query), query, reducer );