import React from 'react'; import { SelectableValue } from '@grafana/data'; import { EditorRow } from '@grafana/experimental'; import CloudMonitoringDatasource from '../datasource'; import { CustomMetaData, MetricDescriptor, MetricQuery, SLOQuery } from '../types'; import { AliasBy } from './AliasBy'; import { Alignment } from './Alignment'; import { GroupBy } from './GroupBy'; import { LabelFilter } from './LabelFilter'; import { Metrics } from './Metrics'; import { Preprocessor } from './Preprocessor'; export interface Props { refId: string; customMetaData: CustomMetaData; variableOptionGroup: SelectableValue; onMetricTypeChange: (query: MetricDescriptor) => void; onChange: (query: MetricQuery | SLOQuery) => void; query: MetricQuery; datasource: CloudMonitoringDatasource; labels: any; } function Editor({ refId, query, labels, datasource, onChange, onMetricTypeChange, customMetaData, variableOptionGroup, }: React.PropsWithChildren) { return ( {(metric) => ( <> onChange({ ...query, filters })} variableOptionGroup={variableOptionGroup} /> { onChange({ ...query, aliasBy }); }} /> )} ); } export const VisualMetricQueryEditor = React.memo(Editor);