mirror of
https://github.com/grafana/grafana.git
synced 2025-08-01 22:43:08 +08:00
fixed issue with switching panels
This commit is contained in:
@ -31,6 +31,10 @@ interface Props extends React.HTMLProps<HTMLInputElement> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class Input extends PureComponent<Props> {
|
export class Input extends PureComponent<Props> {
|
||||||
|
static defaultProps = {
|
||||||
|
className: '',
|
||||||
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
error: null,
|
error: null,
|
||||||
};
|
};
|
||||||
|
@ -81,10 +81,10 @@ export class DashboardPanel extends PureComponent<Props, State> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.exports) {
|
if (plugin.exports) {
|
||||||
this.setState({ plugin: plugin });
|
this.setState({ plugin: plugin, angularPanel: null });
|
||||||
} else {
|
} else {
|
||||||
plugin.exports = await importPluginModule(plugin.module);
|
plugin.exports = await importPluginModule(plugin.module);
|
||||||
this.setState({ plugin: plugin });
|
this.setState({ plugin: plugin, angularPanel: null });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -106,18 +106,15 @@ export class DashboardPanel extends PureComponent<Props, State> {
|
|||||||
this.setState({ angularPanel });
|
this.setState({ angularPanel });
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanUpAngularPanel(unmounted?: boolean) {
|
cleanUpAngularPanel() {
|
||||||
if (this.state.angularPanel) {
|
if (this.state.angularPanel) {
|
||||||
this.state.angularPanel.destroy();
|
this.state.angularPanel.destroy();
|
||||||
|
this.element = null;
|
||||||
if (!unmounted) {
|
|
||||||
this.setState({ angularPanel: null });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
this.cleanUpAngularPanel(true);
|
this.cleanUpAngularPanel();
|
||||||
}
|
}
|
||||||
|
|
||||||
onMouseEnter = () => {
|
onMouseEnter = () => {
|
||||||
|
Reference in New Issue
Block a user