PanelEdit: Adds error indicator in table view (#44595)

pull/44631/head
Hugo Häggmark 3 years ago committed by GitHub
parent c6ce629fd8
commit a660ccc6e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 29
      public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.tsx

@ -1,12 +1,14 @@
import { PanelChrome } from '@grafana/ui'; import { PanelChrome } from '@grafana/ui';
import { PanelRenderer } from 'app/features/panel/components/PanelRenderer'; import { PanelRenderer } from 'app/features/panel/components/PanelRenderer';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { PanelModel, DashboardModel } from '../../state'; import { DashboardModel, PanelModel } from '../../state';
import { usePanelLatestData } from './usePanelLatestData'; import { usePanelLatestData } from './usePanelLatestData';
import { PanelOptions } from 'app/plugins/panel/table/models.gen'; import { PanelOptions } from 'app/plugins/panel/table/models.gen';
import { RefreshEvent } from '@grafana/runtime'; import { RefreshEvent } from '@grafana/runtime';
import { applyPanelTimeOverrides } from 'app/features/dashboard/utils/panel'; import { applyPanelTimeOverrides } from 'app/features/dashboard/utils/panel';
import { getTimeSrv, TimeSrv } from '../../services/TimeSrv'; import { getTimeSrv } from '../../services/TimeSrv';
import PanelHeaderCorner from '../../dashgrid/PanelHeader/PanelHeaderCorner';
interface Props { interface Props {
width: number; width: number;
height: number; height: number;
@ -24,7 +26,7 @@ export function PanelEditorTableView({ width, height, panel, dashboard }: Props)
// Subscribe to panel event // Subscribe to panel event
useEffect(() => { useEffect(() => {
const timeSrv: TimeSrv = getTimeSrv(); const timeSrv = getTimeSrv();
const timeData = applyPanelTimeOverrides(panel, timeSrv.timeRange()); const timeData = applyPanelTimeOverrides(panel, timeSrv.timeRange());
const sub = panel.events.subscribe(RefreshEvent, () => { const sub = panel.events.subscribe(RefreshEvent, () => {
@ -42,15 +44,18 @@ export function PanelEditorTableView({ width, height, panel, dashboard }: Props)
return ( return (
<PanelChrome width={width} height={height} padding="none"> <PanelChrome width={width} height={height} padding="none">
{(innerWidth, innerHeight) => ( {(innerWidth, innerHeight) => (
<PanelRenderer <>
title="Raw data" <PanelHeaderCorner panel={panel} error={data?.error?.message} />
pluginId="table" <PanelRenderer
width={innerWidth} title="Raw data"
height={innerHeight} pluginId="table"
data={data} width={innerWidth}
options={options} height={innerHeight}
onOptionsChange={setOptions} data={data}
/> options={options}
onOptionsChange={setOptions}
/>
</>
)} )}
</PanelChrome> </PanelChrome>
); );

Loading…
Cancel
Save