From c993a4d29653c84b9a4247a567d3ff3a3a56454a Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Wed, 31 Oct 2018 11:50:38 +0100 Subject: [PATCH] stackdriver: streamline the way labels are refreshed when a new value is picked in the dropdowns above --- .../components/TemplateQueryComponent.tsx | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/public/app/plugins/datasource/stackdriver/components/TemplateQueryComponent.tsx b/public/app/plugins/datasource/stackdriver/components/TemplateQueryComponent.tsx index df50de45c86..3c3b0ea8c44 100644 --- a/public/app/plugins/datasource/stackdriver/components/TemplateQueryComponent.tsx +++ b/public/app/plugins/datasource/stackdriver/components/TemplateQueryComponent.tsx @@ -49,22 +49,19 @@ export class StackdriverTemplateQueryComponent extends PureComponent m.value === this.state.metricType); const metricType = metricTypeExistInArray ? metricTypeExistInArray.value : metricTypes[0].value; - let state: any = { service: event.target.value, metricTypes, metricType }; - if (this.isLabelQuery(this.state.type)) { - const labels = await this.getLabelKeys(metricType); - const labelKey = labels.indexOf(this.state.labelKey) !== -1 ? this.state.labelKey : labels[0]; - state = { ...state, labelKey, labels: labels }; - } + const state: any = { service: event.target.value, metricTypes, metricType, ...await this.getLabels(metricType) }; this.setState(state); } async onMetricTypeChange(event) { - let state: any = { metricType: event.target.value }; - if (this.isLabelQuery(this.state.type)) { - const labels = await this.getLabelKeys(event.target.value); - const labelKey = labels.indexOf(this.state.labelKey) !== -1 ? this.state.labelKey : labels[0]; - state = { ...state, labels, labelKey }; - } + const state: any = { metricType: event.target.value, ...await this.getLabels(event.target.value) }; this.setState(state); } @@ -100,6 +87,18 @@ export class StackdriverTemplateQueryComponent extends PureComponent