diff options
| author | botato <63275405+botatooo@users.noreply.github.com> | 2022-07-03 02:14:43 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-02 22:14:43 -0400 |
| commit | 085aacea068dccda170045715ee41dfbfbf44f00 (patch) | |
| tree | 58acf2195019f36d75fa11beb31425ad4d3ce515 | |
| parent | ee8aa98446773a617e70b8fd793a1d81a1d33472 (diff) | |
| download | decky-loader-085aacea068dccda170045715ee41dfbfbf44f00.tar.gz decky-loader-085aacea068dccda170045715ee41dfbfbf44f00.zip | |
Use deckyState in uninstall menu (fixes #98) (#100)
| -rw-r--r-- | backend/browser.py | 4 | ||||
| -rw-r--r-- | frontend/src/components/settings/pages/PluginList.tsx | 6 | ||||
| -rw-r--r-- | frontend/src/plugin-loader.tsx | 12 |
3 files changed, 13 insertions, 9 deletions
diff --git a/backend/browser.py b/backend/browser.py index 316d57a8..6e6963dd 100644 --- a/backend/browser.py +++ b/backend/browser.py @@ -46,9 +46,9 @@ class PluginBrowser: for folder in listdir(self.plugin_path): with open(path.join(self.plugin_path, folder, 'plugin.json'), 'r') as f: plugin = json.load(f) - + if plugin['name'] == name: - return path.join(self.plugin_path, folder) + return path.join(self.plugin_path, folder) async def uninstall_plugin(self, name): tab = await get_tab("SP") diff --git a/frontend/src/components/settings/pages/PluginList.tsx b/frontend/src/components/settings/pages/PluginList.tsx index 4fd2c063..bf01f85a 100644 --- a/frontend/src/components/settings/pages/PluginList.tsx +++ b/frontend/src/components/settings/pages/PluginList.tsx @@ -1,8 +1,10 @@ import { DialogButton, staticClasses } from 'decky-frontend-lib'; import { FaTrash } from 'react-icons/fa'; +import { useDeckyState } from '../../DeckyState'; + export default function PluginList() { - const plugins = window.DeckyPluginLoader?.getPlugins(); + const { plugins } = useDeckyState(); if (plugins.length === 0) { return ( @@ -14,7 +16,7 @@ export default function PluginList() { return ( <ul style={{ listStyleType: 'none' }}> - {window.DeckyPluginLoader?.getPlugins().map(({ name }) => ( + {plugins.map(({ name }) => ( <li style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}> <span>{name}</span> <div className={staticClasses.Title} style={{ marginLeft: 'auto', boxShadow: 'none' }}> diff --git a/frontend/src/plugin-loader.tsx b/frontend/src/plugin-loader.tsx index fc48fdd9..17b3ce15 100644 --- a/frontend/src/plugin-loader.tsx +++ b/frontend/src/plugin-loader.tsx @@ -44,11 +44,13 @@ class PluginLoader extends Logger { }); this.routerHook.addRoute('/decky/store', () => <StorePage />); - this.routerHook.addRoute('/decky/settings', () => <SettingsPage />); - } - - public getPlugins() { - return this.plugins; + this.routerHook.addRoute('/decky/settings', () => { + return ( + <DeckyStateContextProvider deckyState={this.deckyState}> + <SettingsPage /> + </DeckyStateContextProvider> + ); + }); } public addPluginInstallPrompt(artifact: string, version: string, request_id: string, hash: string) { |
