diff options
| author | AAGaming <aa@mail.catvibers.me> | 2022-06-19 18:56:02 -0400 |
|---|---|---|
| committer | AAGaming <aa@mail.catvibers.me> | 2022-06-19 18:56:02 -0400 |
| commit | daca482ed853c1b74649c6579b1094d8a8c27141 (patch) | |
| tree | 6d6d949fd9796e4da8257bf874e1730d10517e76 | |
| parent | 99b4b939bdd2140aecf19ddb09a59b44e9cd117d (diff) | |
| download | decky-loader-daca482ed853c1b74649c6579b1094d8a8c27141.tar.gz decky-loader-daca482ed853c1b74649c6579b1094d8a8c27141.zip | |
fix onDismount
| -rw-r--r-- | frontend/src/plugin-loader.tsx | 50 |
1 files changed, 11 insertions, 39 deletions
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`); } |
