summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Dellinger <jonas@dellinger.dev>2022-06-20 15:34:08 +0200
committerJonas Dellinger <jonas@dellinger.dev>2022-06-20 15:34:08 +0200
commit711af3bca352923901c48a4ceb7d9506545ec622 (patch)
tree8caab4b3f5c9ef03efbd1f5daa99c1c9e5a8b061
parent9a6930571c4e8f6501e6b49cf50ba9525760b507 (diff)
downloaddecky-loader-711af3bca352923901c48a4ceb7d9506545ec622.tar.gz
decky-loader-711af3bca352923901c48a4ceb7d9506545ec622.zip
Fix onDismount
-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 {