From 6c4f4765979fa47853b7111fd8a2a39e7010a66c Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 25 Aug 2021 11:47:29 +0200 Subject: [PATCH] QueryEditor: Don't use _.defaults as it mutates the query prop directly (#37965) (#38539) * QueryEditor: Don't use _.defaults as it mutates the query prop directly * QueryEditor: Update the query type on mount if none exists * QueryEditor: Mutate in the constructor instead of render * Apply defaults immutably in render (cherry picked from commit 7c97b9d03fc386b8bc886b548180c0839121e429) Co-authored-by: Ashley Harrison --- .../plugins/datasource/grafana/components/QueryEditor.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/public/app/plugins/datasource/grafana/components/QueryEditor.tsx b/public/app/plugins/datasource/grafana/components/QueryEditor.tsx index 74e3229010a..84252aafae7 100644 --- a/public/app/plugins/datasource/grafana/components/QueryEditor.tsx +++ b/public/app/plugins/datasource/grafana/components/QueryEditor.tsx @@ -1,5 +1,3 @@ -import { defaults } from 'lodash'; - import React, { PureComponent } from 'react'; import { InlineField, Select, Alert, Input } from '@grafana/ui'; import { QueryEditorProps, SelectableValue, dataFrameFromJSON, rangeUtil } from '@grafana/data'; @@ -245,7 +243,11 @@ export class QueryEditor extends PureComponent { } render() { - const query = defaults(this.props.query, defaultQuery); + const query = { + ...defaultQuery, + ...this.props.query, + }; + return ( <>