fixed issue with switching panels

This commit is contained in:
Torkel Ödegaard
2018-12-14 10:47:18 +01:00
parent 0823712c9a
commit 42ee81a97c
2 changed files with 9 additions and 8 deletions

View File

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

View File

@ -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 = () => {