2020-01-24 14:44:18 -08:00
|
|
|
import React, { FC } from 'react';
|
2019-11-26 11:48:53 -08:00
|
|
|
import { Alert } from 'reactstrap';
|
|
|
|
import Graph from './Graph';
|
2021-06-12 09:02:40 -07:00
|
|
|
import { QueryParams, ExemplarData } from '../../types/types';
|
2020-01-14 10:34:48 -08:00
|
|
|
import { isPresent } from '../../utils';
|
2019-11-26 11:48:53 -08:00
|
|
|
|
2020-01-24 14:44:18 -08:00
|
|
|
interface GraphTabContentProps {
|
2021-09-03 08:41:20 -07:00
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
2019-11-26 11:48:53 -08:00
|
|
|
data: any;
|
2021-06-12 09:02:40 -07:00
|
|
|
exemplars: ExemplarData;
|
2019-11-26 11:48:53 -08:00
|
|
|
stacked: boolean;
|
2020-01-24 14:44:18 -08:00
|
|
|
useLocalTime: boolean;
|
2021-06-12 09:02:40 -07:00
|
|
|
showExemplars: boolean;
|
2021-06-30 01:40:43 -07:00
|
|
|
handleTimeRangeSelection: (startTime: number, endTime: number) => void;
|
2019-11-26 11:48:53 -08:00
|
|
|
lastQueryParams: QueryParams | null;
|
2021-06-12 09:02:40 -07:00
|
|
|
id: string;
|
2020-01-24 14:44:18 -08:00
|
|
|
}
|
|
|
|
|
2021-06-12 09:02:40 -07:00
|
|
|
export const GraphTabContent: FC<GraphTabContentProps> = ({
|
|
|
|
data,
|
|
|
|
exemplars,
|
|
|
|
stacked,
|
|
|
|
useLocalTime,
|
|
|
|
lastQueryParams,
|
|
|
|
showExemplars,
|
2021-06-30 01:40:43 -07:00
|
|
|
handleTimeRangeSelection,
|
2021-06-12 09:02:40 -07:00
|
|
|
id,
|
|
|
|
}) => {
|
2019-11-26 11:48:53 -08:00
|
|
|
if (!isPresent(data)) {
|
|
|
|
return <Alert color="light">No data queried yet</Alert>;
|
|
|
|
}
|
|
|
|
if (data.result.length === 0) {
|
|
|
|
return <Alert color="secondary">Empty query result</Alert>;
|
|
|
|
}
|
|
|
|
if (data.resultType !== 'matrix') {
|
|
|
|
return (
|
|
|
|
<Alert color="danger">Query result is of wrong type '{data.resultType}', should be 'matrix' (range vector).</Alert>
|
|
|
|
);
|
|
|
|
}
|
2021-06-12 09:02:40 -07:00
|
|
|
return (
|
|
|
|
<Graph
|
|
|
|
data={data}
|
|
|
|
exemplars={exemplars}
|
|
|
|
stacked={stacked}
|
|
|
|
useLocalTime={useLocalTime}
|
|
|
|
showExemplars={showExemplars}
|
2021-06-30 01:40:43 -07:00
|
|
|
handleTimeRangeSelection={handleTimeRangeSelection}
|
2021-06-12 09:02:40 -07:00
|
|
|
queryParams={lastQueryParams}
|
|
|
|
id={id}
|
|
|
|
/>
|
|
|
|
);
|
2019-11-26 11:48:53 -08:00
|
|
|
};
|