import React, { useCallback, useState } from 'react'; import { DataFrame, EventBus, AbsoluteTimeRange, TimeZone, SplitOpen, LoadingState } from '@grafana/data'; import { Collapse, useTheme2 } from '@grafana/ui'; import { ExploreGraphStyle } from 'app/types'; import { storeGraphStyle } from '../state/utils'; import { ExploreGraph } from './ExploreGraph'; import { ExploreGraphLabel } from './ExploreGraphLabel'; import { loadGraphStyle } from './utils'; interface Props { loading: boolean; data: DataFrame[]; annotations?: DataFrame[]; eventBus: EventBus; height: number; width: number; absoluteRange: AbsoluteTimeRange; timeZone: TimeZone; onChangeTime: (absoluteRange: AbsoluteTimeRange) => void; splitOpenFn: SplitOpen; loadingState: LoadingState; } export const GraphContainer = ({ loading, data, eventBus, height, width, absoluteRange, timeZone, annotations, onChangeTime, splitOpenFn, loadingState, }: Props) => { const [graphStyle, setGraphStyle] = useState(loadGraphStyle); const theme = useTheme2(); const spacing = parseInt(theme.spacing(2).slice(0, -2), 10); const onGraphStyleChange = useCallback((graphStyle: ExploreGraphStyle) => { storeGraphStyle(graphStyle); setGraphStyle(graphStyle); }, []); return ( } loading={loading} isOpen > ); };