Commit 01208ccd by Johannes Schill

chore: Rename renderHelper > renderDataPanel and move logic to smaller functions

parent b5dbf26d
......@@ -94,6 +94,25 @@ export class PanelChrome extends PureComponent<Props, State> {
return !this.props.dashboard.otherPanelInFullscreen(this.props.panel);
}
get hasPanelSnapshot() {
const { panel } = this.props;
return panel.snapshotData && panel.snapshotData.length;
}
get hasDataPanel() {
return !this.props.plugin.noQueries && !this.hasPanelSnapshot;
}
get getDataForPanel() {
const { panel, plugin } = this.props;
if (plugin.noQueries) {
return null;
}
return this.hasPanelSnapshot ? snapshotDataToPanelData(panel) : null;
}
renderPanelPlugin(loading: LoadingState, panelData: PanelData, width: number, height: number): JSX.Element {
const { panel, plugin } = this.props;
const { timeRange, renderCounter } = this.state;
......@@ -121,20 +140,14 @@ export class PanelChrome extends PureComponent<Props, State> {
);
}
renderHelper = (width: number, height: number): JSX.Element => {
const { panel, plugin } = this.props;
renderDataPanel = (width: number, height: number): JSX.Element => {
const { panel } = this.props;
const { refreshCounter, timeRange } = this.state;
const { datasource, targets } = panel;
return (
<>
{panel.snapshotData && panel.snapshotData.length > 0 ? (
this.renderPanelPlugin(LoadingState.Done, snapshotDataToPanelData(panel), width, height)
) : (
<>
{plugin.noQueries ?
this.renderPanelPlugin(LoadingState.Done, null, width, height)
: (
<DataPanel
{this.hasDataPanel ? (
<DataPanel
panelId={panel.id}
datasource={datasource}
queries={targets}
......@@ -142,20 +155,18 @@ export class PanelChrome extends PureComponent<Props, State> {
isVisible={this.isVisible}
widthPixels={width}
refreshCounter={refreshCounter}
onDataResponse={this.onDataResponse}
>
onDataResponse={this.onDataResponse} >
{({ loading, panelData }) => {
return this.renderPanelPlugin(loading, panelData, width, height);
}}
</DataPanel>
)}
</>
)}
) : (
this.renderPanelPlugin(LoadingState.Done, this.getDataForPanel, width, height)
)}
</>
);
}
render() {
const { dashboard, panel } = this.props;
const { timeInfo } = this.state;
......@@ -180,7 +191,7 @@ export class PanelChrome extends PureComponent<Props, State> {
scopedVars={panel.scopedVars}
links={panel.links}
/>
{this.renderHelper(width, height)}
{this.renderDataPanel(width, height)}
</div>
);
}}
......
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