Commit 7b805bdb by Torkel Ödegaard

minor react panels refafactor

parent e331d24a
...@@ -128,7 +128,7 @@ export class DashboardPanel extends PureComponent<Props, State> { ...@@ -128,7 +128,7 @@ export class DashboardPanel extends PureComponent<Props, State> {
return ( return (
<div className={containerClass}> <div className={containerClass}>
<div className={panelWrapperClass}> <div className={panelWrapperClass}>
<PanelChrome component={plugin.exports.PanelComponent} panel={panel} dashboard={dashboard} /> <PanelChrome component={plugin.exports.Panel} panel={panel} dashboard={dashboard} />
</div> </div>
{panel.isEditing && ( {panel.isEditing && (
<PanelEditor panel={panel} plugin={plugin} dashboard={dashboard} onTypeChanged={this.onPluginTypeChanged} /> <PanelEditor panel={panel} plugin={plugin} dashboard={dashboard} onTypeChanged={this.onPluginTypeChanged} />
...@@ -151,7 +151,7 @@ export class DashboardPanel extends PureComponent<Props, State> { ...@@ -151,7 +151,7 @@ export class DashboardPanel extends PureComponent<Props, State> {
} }
// if exporting PanelComponent it must be a react panel // if exporting PanelComponent it must be a react panel
if (plugin.exports.PanelComponent) { if (plugin.exports.Panel) {
return this.renderReactPanel(); return this.renderReactPanel();
} }
......
...@@ -14,8 +14,8 @@ class PanelPluginNotFound extends PureComponent<Props> { ...@@ -14,8 +14,8 @@ class PanelPluginNotFound extends PureComponent<Props> {
render() { render() {
const style = { const style = {
display: 'flex', display: 'flex',
'align-items': 'center', alignItems: 'center',
'text-align': 'center', textAlign: 'center' as 'center',
height: '100%', height: '100%',
}; };
...@@ -58,7 +58,7 @@ export function getPanelPluginNotFound(id: string): PanelPlugin { ...@@ -58,7 +58,7 @@ export function getPanelPluginNotFound(id: string): PanelPlugin {
}, },
exports: { exports: {
PanelComponent: NotFound, Panel: NotFound,
}, },
}; };
} }
...@@ -21,10 +21,10 @@ export class VisualizationTab extends PureComponent<Props> { ...@@ -21,10 +21,10 @@ export class VisualizationTab extends PureComponent<Props> {
renderPanelOptions() { renderPanelOptions() {
const { plugin, panel } = this.props; const { plugin, panel } = this.props;
const { PanelOptionsComponent } = plugin.exports; const { PanelOptions } = plugin.exports;
if (PanelOptionsComponent) { if (PanelOptions) {
return <PanelOptionsComponent options={panel.getOptions()} onChange={this.onPanelOptionsChanged} />; return <PanelOptions options={panel.getOptions()} onChange={this.onPanelOptionsChanged} />;
} else { } else {
return <p>Visualization has no options</p>; return <p>Visualization has no options</p>;
} }
......
import React, { PureComponent } from 'react'; import React, { PureComponent } from 'react';
import { PanelOptionsProps } from '../types'; import { PanelOptionsProps } from 'app/types';
interface Props {} interface Props {}
......
...@@ -2,6 +2,7 @@ import React, { PureComponent } from 'react'; ...@@ -2,6 +2,7 @@ import React, { PureComponent } from 'react';
import Gauge from 'app/viz/Gauge'; import Gauge from 'app/viz/Gauge';
import { NullValueMode, PanelProps } from 'app/types'; import { NullValueMode, PanelProps } from 'app/types';
import { getTimeSeriesVMs } from 'app/viz/state/timeSeries'; import { getTimeSeriesVMs } from 'app/viz/state/timeSeries';
import { GaugeOptions } from './GaugeOptions';
export interface Options {} export interface Options {}
...@@ -20,4 +21,4 @@ export class GaugePanel extends PureComponent<Props> { ...@@ -20,4 +21,4 @@ export class GaugePanel extends PureComponent<Props> {
} }
} }
export { GaugePanel as PanelComponent }; export { GaugePanel as Panel, GaugeOptions as PanelOptions };
...@@ -87,4 +87,4 @@ export class GraphOptions extends PureComponent<PanelOptionsProps<Options>> { ...@@ -87,4 +87,4 @@ export class GraphOptions extends PureComponent<PanelOptionsProps<Options>> {
} }
} }
export { Graph2 as PanelComponent, GraphOptions as PanelOptionsComponent }; export { Graph2 as Panel, GraphOptions as PanelOptions };
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
"url": "https://grafana.com" "url": "https://grafana.com"
}, },
"logos": { "logos": {
"small": "img/icn-text-panel.svg", "small": "img/icn-graph-panel.svg",
"large": "img/icn-text-panel.svg" "large": "img/icn-graph-panel.svg"
} }
} }
} }
......
...@@ -11,4 +11,4 @@ export class Text2 extends PureComponent<PanelProps> { ...@@ -11,4 +11,4 @@ export class Text2 extends PureComponent<PanelProps> {
} }
} }
export { Text2 as PanelComponent }; export { Text2 as Panel };
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
"url": "https://grafana.com" "url": "https://grafana.com"
}, },
"logos": { "logos": {
"small": "img/icn-graph-panel.svg", "small": "img/icn-text-panel.svg",
"large": "img/icn-graph-panel.svg" "large": "img/icn-text-panel.svg"
} }
} }
} }
......
...@@ -13,6 +13,11 @@ export interface PanelOptionsProps<T = any> { ...@@ -13,6 +13,11 @@ export interface PanelOptionsProps<T = any> {
onChange: (options: T) => void; onChange: (options: T) => void;
} }
export interface PanelSize {
width: number;
height: number;
}
export interface PanelMenuItem { export interface PanelMenuItem {
type?: 'submenu' | 'divider'; type?: 'submenu' | 'divider';
text?: string; text?: string;
......
...@@ -11,8 +11,8 @@ export interface PluginExports { ...@@ -11,8 +11,8 @@ export interface PluginExports {
// Panel plugin // Panel plugin
PanelCtrl?; PanelCtrl?;
PanelComponent?: ComponentClass<PanelProps>; Panel?: ComponentClass<PanelProps>;
PanelOptionsComponent?: ComponentClass<PanelOptionsProps>; PanelOptions?: ComponentClass<PanelOptionsProps>;
} }
export interface PanelPlugin { export interface PanelPlugin {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment