import React, { FunctionComponent } from 'react'; import { QueryEditorProps } from '@grafana/data'; import { ElasticDatasource } from '../../datasource'; import { ElasticsearchOptions, ElasticsearchQuery } from '../../types'; import { ElasticsearchProvider } from './ElasticsearchQueryContext'; import { InlineField, InlineFieldRow, Input, QueryField } from '@grafana/ui'; import { changeAliasPattern, changeQuery } from './state'; import { MetricAggregationsEditor } from './MetricAggregationsEditor'; import { BucketAggregationsEditor } from './BucketAggregationsEditor'; import { useDispatch } from '../../hooks/useStatelessReducer'; import { useNextId } from '../../hooks/useNextId'; export type ElasticQueryEditorProps = QueryEditorProps; export const QueryEditor: FunctionComponent = ({ query, onChange, datasource }) => ( ); interface Props { value: ElasticsearchQuery; } const QueryEditorForm: FunctionComponent = ({ value }) => { const dispatch = useDispatch(); const nextId = useNextId(); return ( <> {}} onChange={query => dispatch(changeQuery(query))} placeholder="Lucene Query" portalOrigin="elasticsearch" /> dispatch(changeAliasPattern(e.currentTarget.value))} /> ); };