mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
|  | import { PanelChrome } from '@grafana/ui'; | ||
|  | import { PanelRenderer } from 'app/features/panel/PanelRenderer'; | ||
|  | import React, { useState } from 'react'; | ||
|  | import { PanelModel } from '../../state'; | ||
|  | import { usePanelLatestData } from './usePanelLatestData'; | ||
|  | import { PanelOptions } from 'app/plugins/panel/table/models.gen'; | ||
|  | 
 | ||
|  | interface Props { | ||
|  |   width: number; | ||
|  |   height: number; | ||
|  |   panel: PanelModel; | ||
|  | } | ||
|  | 
 | ||
|  | export function PanelEditorTableView({ width, height, panel }: Props) { | ||
|  |   const { data } = usePanelLatestData(panel, { withTransforms: true, withFieldConfig: false }, true); | ||
|  |   const [options, setOptions] = useState<PanelOptions>({ | ||
|  |     frameIndex: 0, | ||
|  |     showHeader: true, | ||
|  |   }); | ||
|  | 
 | ||
|  |   if (!data) { | ||
|  |     return null; | ||
|  |   } | ||
|  | 
 | ||
|  |   return ( | ||
|  |     <PanelChrome width={width} height={height} padding="none"> | ||
|  |       {(innerWidth, innerHeight) => ( | ||
|  |         <PanelRenderer | ||
|  |           title="Raw data" | ||
|  |           pluginId="table" | ||
|  |           width={innerWidth} | ||
|  |           height={innerHeight} | ||
|  |           data={data} | ||
|  |           options={options} | ||
|  |           onOptionsChange={setOptions} | ||
|  |         /> | ||
|  |       )} | ||
|  |     </PanelChrome> | ||
|  |   ); | ||
|  | } |