From 65f1eb052de17f21144571d932281a0484f48dfd Mon Sep 17 00:00:00 2001 From: Jesse Bofill Date: Mon, 6 Oct 2025 13:50:02 -0600 Subject: implement base frontend changes necessary for plugin disabling --- frontend/src/plugin-loader.tsx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'frontend/src/plugin-loader.tsx') diff --git a/frontend/src/plugin-loader.tsx b/frontend/src/plugin-loader.tsx index df0a6956..9d74cbae 100644 --- a/frontend/src/plugin-loader.tsx +++ b/frontend/src/plugin-loader.tsx @@ -30,7 +30,7 @@ import { FrozenPluginService } from './frozen-plugins-service'; import { HiddenPluginsService } from './hidden-plugins-service'; import Logger from './logger'; import { NotificationService } from './notification-service'; -import { InstallType, Plugin, PluginLoadType } from './plugin'; +import { DisabledPlugin, InstallType, Plugin, PluginLoadType } from './plugin'; import RouterHook from './router-hook'; import { deinitSteamFixes, initSteamFixes } from './steamfixes'; import { checkForPluginUpdates } from './store'; @@ -197,7 +197,7 @@ class PluginLoader extends Logger { private getPluginsFromBackend = DeckyBackend.callable< [], - { name: string; version: string; load_type: PluginLoadType }[] + { name: string; version: string; load_type: PluginLoadType; disabled: boolean }[] >('loader/get_plugins'); private restartWebhelper = DeckyBackend.callable<[], void>('utilities/restart_webhelper'); @@ -220,10 +220,16 @@ class PluginLoader extends Logger { this.runCrashChecker(); const plugins = await this.getPluginsFromBackend(); const pluginLoadPromises = []; + const disabledPlugins: DisabledPlugin[] = []; const loadStart = performance.now(); for (const plugin of plugins) { - if (!this.hasPlugin(plugin.name)) - pluginLoadPromises.push(this.importPlugin(plugin.name, plugin.version, plugin.load_type, false)); + if (plugin.disabled) { + disabledPlugins.push({ name: plugin.name, version: plugin.version }); + this.deckyState.setDisabledPlugins(disabledPlugins); + } else { + if (!this.hasPlugin(plugin.name)) + pluginLoadPromises.push(this.importPlugin(plugin.name, plugin.version, plugin.load_type, false)); + } } await Promise.all(pluginLoadPromises); const loadEnd = performance.now(); -- cgit v1.2.3 From 1ae6519209c9bf079d8dff80d5bceb5a847b08b1 Mon Sep 17 00:00:00 2001 From: Jesse Bofill Date: Mon, 6 Oct 2025 14:29:39 -0600 Subject: implement frontend diisable functions/ modal --- frontend/src/plugin-loader.tsx | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'frontend/src/plugin-loader.tsx') diff --git a/frontend/src/plugin-loader.tsx b/frontend/src/plugin-loader.tsx index 9d74cbae..755c4460 100644 --- a/frontend/src/plugin-loader.tsx +++ b/frontend/src/plugin-loader.tsx @@ -341,6 +341,10 @@ class PluginLoader extends Logger { showModal(); } + public disablePlugin(name: string, title: string, buttonText: string, description: string) { + showModal(); + } + public hasPlugin(name: string) { return Boolean(this.plugins.find((plugin) => plugin.name == name)); } -- cgit v1.2.3 From d2b6999520c7e7425a757644c30bc6b494f57b8c Mon Sep 17 00:00:00 2001 From: Jesse Bofill Date: Mon, 6 Oct 2025 15:39:59 -0600 Subject: fix mistakes --- frontend/src/plugin-loader.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'frontend/src/plugin-loader.tsx') diff --git a/frontend/src/plugin-loader.tsx b/frontend/src/plugin-loader.tsx index 755c4460..36766495 100644 --- a/frontend/src/plugin-loader.tsx +++ b/frontend/src/plugin-loader.tsx @@ -39,6 +39,7 @@ import Toaster from './toaster'; import { getVersionInfo } from './updater'; import { getSetting, setSetting } from './utils/settings'; import TranslationHelper, { TranslationClass } from './utils/TranslationHelper'; +import PluginDisablelModal from './components/modals/PluginDisablelModal'; const StorePage = lazy(() => import('./components/store/Store')); const SettingsPage = lazy(() => import('./components/settings')); @@ -342,7 +343,7 @@ class PluginLoader extends Logger { } public disablePlugin(name: string, title: string, buttonText: string, description: string) { - showModal(); + showModal(); } public hasPlugin(name: string) { -- cgit v1.2.3