summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/browser.py4
-rw-r--r--frontend/src/components/settings/pages/PluginList.tsx6
-rw-r--r--frontend/src/plugin-loader.tsx12
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) {