minor react panels refafactor

This commit is contained in:
Torkel Ödegaard 2018-11-13 08:40:42 +01:00
parent e331d24a38
commit 7b805bdb81
13 changed files with 24 additions and 18 deletions

View File

@ -128,7 +128,7 @@ export class DashboardPanel extends PureComponent<Props, State> {
return (
<div className={containerClass}>
<div className={panelWrapperClass}>
<PanelChrome component={plugin.exports.PanelComponent} panel={panel} dashboard={dashboard} />
<PanelChrome component={plugin.exports.Panel} panel={panel} dashboard={dashboard} />
</div>
{panel.isEditing && (
<PanelEditor panel={panel} plugin={plugin} dashboard={dashboard} onTypeChanged={this.onPluginTypeChanged} />
@ -151,7 +151,7 @@ export class DashboardPanel extends PureComponent<Props, State> {
}
// if exporting PanelComponent it must be a react panel
if (plugin.exports.PanelComponent) {
if (plugin.exports.Panel) {
return this.renderReactPanel();
}

View File

@ -14,8 +14,8 @@ class PanelPluginNotFound extends PureComponent<Props> {
render() {
const style = {
display: 'flex',
'align-items': 'center',
'text-align': 'center',
alignItems: 'center',
textAlign: 'center' as 'center',
height: '100%',
};
@ -58,7 +58,7 @@ export function getPanelPluginNotFound(id: string): PanelPlugin {
},
exports: {
PanelComponent: NotFound,
Panel: NotFound,
},
};
}

View File

@ -21,10 +21,10 @@ export class VisualizationTab extends PureComponent<Props> {
renderPanelOptions() {
const { plugin, panel } = this.props;
const { PanelOptionsComponent } = plugin.exports;
const { PanelOptions } = plugin.exports;
if (PanelOptionsComponent) {
return <PanelOptionsComponent options={panel.getOptions()} onChange={this.onPanelOptionsChanged} />;
if (PanelOptions) {
return <PanelOptions options={panel.getOptions()} onChange={this.onPanelOptionsChanged} />;
} else {
return <p>Visualization has no options</p>;
}

View File

@ -1,5 +1,5 @@
import React, { PureComponent } from 'react';
import { PanelOptionsProps } from '../types';
import { PanelOptionsProps } from 'app/types';
interface Props {}

View File

@ -2,6 +2,7 @@ import React, { PureComponent } from 'react';
import Gauge from 'app/viz/Gauge';
import { NullValueMode, PanelProps } from 'app/types';
import { getTimeSeriesVMs } from 'app/viz/state/timeSeries';
import { GaugeOptions } from './GaugeOptions';
export interface Options {}
@ -20,4 +21,4 @@ export class GaugePanel extends PureComponent<Props> {
}
}
export { GaugePanel as PanelComponent };
export { GaugePanel as Panel, GaugeOptions as PanelOptions };

View File

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@ -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 };

View File

@ -11,8 +11,8 @@
"url": "https://grafana.com"
},
"logos": {
"small": "img/icn-text-panel.svg",
"large": "img/icn-text-panel.svg"
"small": "img/icn-graph-panel.svg",
"large": "img/icn-graph-panel.svg"
}
}
}

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -11,4 +11,4 @@ export class Text2 extends PureComponent<PanelProps> {
}
}
export { Text2 as PanelComponent };
export { Text2 as Panel };

View File

@ -11,8 +11,8 @@
"url": "https://grafana.com"
},
"logos": {
"small": "img/icn-graph-panel.svg",
"large": "img/icn-graph-panel.svg"
"small": "img/icn-text-panel.svg",
"large": "img/icn-text-panel.svg"
}
}
}

View File

@ -13,6 +13,11 @@ export interface PanelOptionsProps<T = any> {
onChange: (options: T) => void;
}
export interface PanelSize {
width: number;
height: number;
}
export interface PanelMenuItem {
type?: 'submenu' | 'divider';
text?: string;

View File

@ -11,8 +11,8 @@ export interface PluginExports {
// Panel plugin
PanelCtrl?;
PanelComponent?: ComponentClass<PanelProps>;
PanelOptionsComponent?: ComponentClass<PanelOptionsProps>;
Panel?: ComponentClass<PanelProps>;
PanelOptions?: ComponentClass<PanelOptionsProps>;
}
export interface PanelPlugin {