mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import React, { useMemo } from 'react';
|
|
|
|
import { DataFrame, SplitOpen } from '@grafana/data';
|
|
import { PanelChrome } from '@grafana/ui';
|
|
import { StoreState, useSelector } from 'app/types';
|
|
|
|
import { TraceView } from './TraceView';
|
|
import { transformDataFrames } from './utils/transform';
|
|
|
|
interface Props {
|
|
dataFrames: DataFrame[];
|
|
splitOpenFn: SplitOpen;
|
|
exploreId: string;
|
|
scrollElement?: Element;
|
|
}
|
|
|
|
export function TraceViewContainer(props: Props) {
|
|
// At this point we only show single trace
|
|
const frame = props.dataFrames[0];
|
|
const { dataFrames, splitOpenFn, exploreId, scrollElement } = props;
|
|
const traceProp = useMemo(() => transformDataFrames(frame), [frame]);
|
|
const datasource = useSelector(
|
|
(state: StoreState) => state.explore.panes[props.exploreId]?.datasourceInstance ?? undefined
|
|
);
|
|
|
|
if (!traceProp) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<PanelChrome padding="none" title="Trace">
|
|
<TraceView
|
|
exploreId={exploreId}
|
|
dataFrames={dataFrames}
|
|
splitOpenFn={splitOpenFn}
|
|
scrollElement={scrollElement}
|
|
traceProp={traceProp}
|
|
datasource={datasource}
|
|
/>
|
|
</PanelChrome>
|
|
);
|
|
}
|