summaryrefslogtreecommitdiff
path: root/frontend/src
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src')
-rw-r--r--frontend/src/plugin-loader.tsx11
1 files changed, 8 insertions, 3 deletions
diff --git a/frontend/src/plugin-loader.tsx b/frontend/src/plugin-loader.tsx
index c42065c7..b8729168 100644
--- a/frontend/src/plugin-loader.tsx
+++ b/frontend/src/plugin-loader.tsx
@@ -87,16 +87,21 @@ class PluginLoader extends Logger {
}
this.log(`Trying to load ${name}`);
- let find = this.plugins.find((x) => x.name == name);
- if (find) this.plugins.splice(this.plugins.indexOf(find), 1);
+
+ const oldPlugin = this.plugins.find((plugin) => plugin.name === name);
+ if (oldPlugin) {
+ oldPlugin.onDismount?.();
+ this.plugins = this.plugins.filter((plugin) => plugin !== oldPlugin);
+ }
+
if (name.startsWith('$LEGACY_')) {
await this.importLegacyPlugin(name.replace('$LEGACY_', ''));
} else {
await this.importReactPlugin(name);
}
- this.log(`Loaded ${name}`);
this.deckyState.setPlugins(this.plugins);
+ this.log(`Loaded ${name}`);
} catch (e) {
throw e;
} finally {