From daca482ed853c1b74649c6579b1094d8a8c27141 Mon Sep 17 00:00:00 2001
From: AAGaming <aa@mail.catvibers.me>
Date: Sun, 19 Jun 2022 18:56:02 -0400
Subject: fix onDismount

---
 frontend/src/plugin-loader.tsx | 50 ++++++++++--------------------------------
 1 file changed, 11 insertions(+), 39 deletions(-)

(limited to 'frontend/src/plugin-loader.tsx')

diff --git a/frontend/src/plugin-loader.tsx b/frontend/src/plugin-loader.tsx
index eb3344a3..6d0d24c6 100644
--- a/frontend/src/plugin-loader.tsx
+++ b/frontend/src/plugin-loader.tsx
@@ -4,7 +4,6 @@ import { FaPlug } from 'react-icons/fa';
 import { DeckyState, DeckyStateContextProvider } from './components/DeckyState';
 import LegacyPlugin from './components/LegacyPlugin';
 import PluginView from './components/PluginView';
-import StorePage from './components/store/Store';
 import TitleView from './components/TitleView';
 import Logger from './logger';
 import { Plugin } from './plugin';
@@ -22,10 +21,6 @@ class PluginLoader extends Logger {
   private routerHook: RouterHook = new RouterHook();
   private deckyState: DeckyState = new DeckyState();
 
-  private reloadLock: boolean = false;
-  // stores a list of plugin names which requested to be reloaded
-  private pluginReloadQueue: string[] = [];
-
   constructor() {
     super(PluginLoader.name);
     this.log('Initialized');
@@ -44,8 +39,6 @@ class PluginLoader extends Logger {
       ),
       icon: <FaPlug />,
     });
-
-    this.routerHook.addRoute('/decky/store', () => <StorePage />);
   }
 
   public addPluginInstallPrompt(artifact: string, version: string, request_id: string) {
@@ -74,38 +67,18 @@ class PluginLoader extends Logger {
     }
   }
 
-  public deinit() {
-    this.routerHook.removeRoute('/decky/store');
-  }
-
   public async importPlugin(name: string) {
-    try {
-      if (this.reloadLock) {
-        this.log('Reload currently in progress, adding to queue', name);
-        this.pluginReloadQueue.push(name);
-        return;
-      }
-
-      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);
-      if (name.startsWith('$LEGACY_')) {
-        await this.importLegacyPlugin(name.replace('$LEGACY_', ''));
-      } else {
-        await this.importReactPlugin(name);
-      }
-      this.log(`Loaded ${name}`);
-
-      this.deckyState.setPlugins(this.plugins);
-    } catch (e) {
-      throw e;
-    } finally {
-      this.reloadLock = false;
-      const nextPlugin = this.pluginReloadQueue.shift();
-      if (nextPlugin) {
-        this.importPlugin(nextPlugin);
-      }
+    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);
+    if (name.startsWith('$LEGACY_')) {
+      await this.importLegacyPlugin(name.replace('$LEGACY_', ''));
+    } else {
+      await this.importReactPlugin(name);
     }
+    this.log(`Loaded ${name}`);
+
+    this.deckyState.setPlugins(this.plugins);
   }
 
   private async importReactPlugin(name: string) {
@@ -114,8 +87,7 @@ class PluginLoader extends Logger {
       let content = await eval(await res.text())(this.createPluginAPI(name));
       this.plugins.push({
         name: name,
-        icon: content.icon,
-        content: content.content,
+        ...content,
       });
     } else throw new Error(`${name} frontend_bundle not OK`);
   }
-- 
cgit v1.2.3

