import React, { useCallback } from 'react'; import { TooltipPlugin, ZoomPlugin, GraphNG, GraphNGLegendEvent } from '@grafana/ui'; import { PanelProps } from '@grafana/data'; import { Options } from './types'; import { AnnotationsPlugin } from './plugins/AnnotationsPlugin'; import { ExemplarsPlugin } from './plugins/ExemplarsPlugin'; import { ContextMenuPlugin } from './plugins/ContextMenuPlugin'; import { hideSeriesConfigFactory } from './overrides/hideSeriesConfigFactory'; import { changeSeriesColorConfigFactory } from './overrides/colorSeriesConfigFactory'; interface TimeSeriesPanelProps extends PanelProps {} export const TimeSeriesPanel: React.FC = ({ data, timeRange, timeZone, width, height, options, fieldConfig, onChangeTimeRange, onFieldConfigChange, replaceVariables, }) => { const onLegendClick = useCallback( (event: GraphNGLegendEvent) => { onFieldConfigChange(hideSeriesConfigFactory(event, fieldConfig, data.series)); }, [fieldConfig, onFieldConfigChange, data.series] ); const onSeriesColorChange = useCallback( (label: string, color: string) => { onFieldConfigChange(changeSeriesColorConfigFactory(label, color, fieldConfig)); }, [fieldConfig, onFieldConfigChange] ); return ( {data.annotations ? : <>} {data.annotations ? : <>} ); };