import React, { useContext } from 'react'; import { FlotDataPoint } from './GraphContextMenuCtrl'; import { ContextMenu, ContextMenuProps, SeriesIcon, ThemeContext } from '@grafana/ui'; import { DateTimeInput } from '@grafana/data'; import { css } from 'emotion'; type GraphContextMenuProps = ContextMenuProps & { getContextMenuSource: () => FlotDataPoint | null; formatSourceDate: (date: DateTimeInput, format?: string) => string; }; export const GraphContextMenu: React.FC = ({ getContextMenuSource, formatSourceDate, items, ...otherProps }) => { const theme = useContext(ThemeContext); const source = getContextMenuSource(); // Do not render items that do not have label specified const itemsToRender = items ? items.map(group => ({ ...group, items: group.items.filter(item => item.label), })) : []; const renderHeader = source ? () => { if (!source) { return null; } const timeFormat = source.series.hasMsResolution ? 'YYYY-MM-DD HH:mm:ss.SSS' : 'YYYY-MM-DD HH:mm:ss'; return (
{formatSourceDate(source.datapoint[0], timeFormat)}
{source.series.alias}
); } : null; return ; };