diff --git a/public/app/plugins/datasource/cloudwatch/components/CombinedMetricsEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/CombinedMetricsEditor.tsx deleted file mode 100644 index dadf6a7cfb4..00000000000 --- a/public/app/plugins/datasource/cloudwatch/components/CombinedMetricsEditor.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import React, { PureComponent } from 'react'; -import { ExploreQueryFieldProps } from '@grafana/data'; -import { RadioButtonGroup } from '@grafana/ui'; -import { CloudWatchQuery } from '../types'; -import { CloudWatchDatasource } from '../datasource'; -import LogsQueryEditor from './LogsQueryEditor'; -import { MetricsQueryEditor } from './MetricsQueryEditor'; -import { cx, css } from 'emotion'; - -export type Props = ExploreQueryFieldProps; - -export class CombinedMetricsEditor extends PureComponent { - renderMetricsEditor() { - return ; - } - - renderLogsEditor() { - return ; - } - - render() { - const { query } = this.props; - - const apiMode = query.apiMode ?? query.queryMode ?? 'Metrics'; - - return ( - <> -
- this.props.onChange({ ...query, apiMode: v })} - /> -
- {apiMode === 'Metrics' ? this.renderMetricsEditor() : this.renderLogsEditor()} - - ); - } -} diff --git a/public/app/plugins/datasource/cloudwatch/components/PanelQueryEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/PanelQueryEditor.tsx index d3b8641420f..b64c74a67b3 100644 --- a/public/app/plugins/datasource/cloudwatch/components/PanelQueryEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/PanelQueryEditor.tsx @@ -9,35 +9,28 @@ import LogsQueryEditor from './LogsQueryEditor'; export type Props = ExploreQueryFieldProps; -interface State { - queryMode: ExploreMode; -} - -export class PanelQueryEditor extends PureComponent { - state: State = { queryMode: (this.props.query.queryMode as ExploreMode) ?? ExploreMode.Metrics }; - - onQueryModeChange(mode: ExploreMode) { - this.setState({ - queryMode: mode, - }); - } +const apiModes = { + Metrics: { label: 'CloudWatch Metrics', value: 'Metrics' }, + Logs: { label: 'CloudWatch Logs', value: 'Logs' }, +}; +export class PanelQueryEditor extends PureComponent { render() { - const { queryMode } = this.state; + const { query } = this.props; + const apiMode = query.apiMode ?? query.queryMode ?? 'Metrics'; return ( <> this.onQueryModeChange(value ?? ExploreMode.Metrics)} + value={apiModes[apiMode]} + options={Object.values(apiModes)} + onChange={({ value }) => + this.props.onChange({ ...query, apiMode: (value as 'Metrics' | 'Logs') ?? 'Metrics' }) + } /> - {queryMode === ExploreMode.Logs ? : } + {apiMode === ExploreMode.Logs ? : } ); } diff --git a/public/app/plugins/datasource/cloudwatch/module.tsx b/public/app/plugins/datasource/cloudwatch/module.tsx index c06d4c7ba05..e40f0415e09 100644 --- a/public/app/plugins/datasource/cloudwatch/module.tsx +++ b/public/app/plugins/datasource/cloudwatch/module.tsx @@ -7,7 +7,6 @@ import { CloudWatchJsonData, CloudWatchQuery } from './types'; import { CloudWatchLogsQueryEditor } from './components/LogsQueryEditor'; import { PanelQueryEditor } from './components/PanelQueryEditor'; import LogsCheatSheet from './components/LogsCheatSheet'; -import { CombinedMetricsEditor } from './components/CombinedMetricsEditor'; export const plugin = new DataSourcePlugin( CloudWatchDatasource @@ -15,6 +14,6 @@ export const plugin = new DataSourcePlugin