import React, { useEffect } from 'react'; import { DataSourceHttpSettings, DataSourcePluginOptionsEditorProps } from '@grafana/ui'; import { ElasticsearchOptions } from '../types'; import { defaultMaxConcurrentShardRequests, ElasticDetails } from './ElasticDetails'; import { LogsConfig } from './LogsConfig'; export type Props = DataSourcePluginOptionsEditorProps; export const ConfigEditor = (props: Props) => { const { options, onOptionsChange } = props; // Apply some defaults on initial render useEffect(() => { const esVersion = options.jsonData.esVersion || 5; onOptionsChange({ ...options, jsonData: { ...options.jsonData, timeField: options.jsonData.timeField || '@timestamp', esVersion, maxConcurrentShardRequests: options.jsonData.maxConcurrentShardRequests || defaultMaxConcurrentShardRequests(esVersion), logMessageField: options.jsonData.logMessageField || '', logLevelField: options.jsonData.logLevelField || '', }, }); }, []); return ( <> onOptionsChange({ ...options, jsonData: newValue, }) } /> ); };