diff options
| author | Jesse Bofill <jesse_bofill@yahoo.com> | 2025-10-06 14:29:39 -0600 |
|---|---|---|
| committer | Jesse Bofill <jesse_bofill@yahoo.com> | 2025-10-06 14:29:39 -0600 |
| commit | 1ae6519209c9bf079d8dff80d5bceb5a847b08b1 (patch) | |
| tree | 05daa08379fb895d5ac7f1c41ef87514803c56b6 /frontend/src/components/settings | |
| parent | 65f1eb052de17f21144571d932281a0484f48dfd (diff) | |
| download | decky-loader-1ae6519209c9bf079d8dff80d5bceb5a847b08b1.tar.gz decky-loader-1ae6519209c9bf079d8dff80d5bceb5a847b08b1.zip | |
implement frontend diisable functions/ modal
Diffstat (limited to 'frontend/src/components/settings')
| -rw-r--r-- | frontend/src/components/settings/pages/plugin_list/index.tsx | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/frontend/src/components/settings/pages/plugin_list/index.tsx b/frontend/src/components/settings/pages/plugin_list/index.tsx index e244b8a9..f13cbe2b 100644 --- a/frontend/src/components/settings/pages/plugin_list/index.tsx +++ b/frontend/src/components/settings/pages/plugin_list/index.tsx @@ -35,6 +35,7 @@ async function reinstallPlugin(pluginName: string, currentVersion?: string) { type PluginTableData = PluginData & { name: string; + disabled: boolean; frozen: boolean; onFreeze(): void; onUnfreeze(): void; @@ -54,7 +55,7 @@ function PluginInteractables(props: { entry: ReorderableEntry<PluginTableData> } return null; } - const { name, update, version, onHide, onShow, hidden, onFreeze, onUnfreeze, frozen, isDeveloper } = props.entry.data; + const { name, update, version, onHide, onShow, hidden, onFreeze, onUnfreeze, frozen, isDeveloper, disabled } = props.entry.data; const showCtxMenu = (e: MouseEvent | GamepadEvent) => { showContextMenu( @@ -82,6 +83,22 @@ function PluginInteractables(props: { entry: ReorderableEntry<PluginTableData> } > {t('PluginListIndex.uninstall')} </MenuItem> + {disabled ? <MenuItem + onSelected={() => + DeckyPluginLoader.disablePlugin( + name, + t('PluginLoader.plugin_disable.title', { name }), + t('PluginLoader.plugin_disable.button'), + t('PluginLoader.plugin_disable.desc', { name }), + ) + } + > + {t('PluginListIndex.plugin_disable')} + </MenuItem> : + // implement enabler + <> + </> + } {hidden ? ( <MenuItem onSelected={onShow}>{t('PluginListIndex.show')}</MenuItem> ) : ( @@ -147,7 +164,7 @@ type PluginData = { }; export default function PluginList({ isDeveloper }: { isDeveloper: boolean }) { - const { installedPlugins, updates, pluginOrder, setPluginOrder, frozenPlugins, hiddenPlugins } = useDeckyState(); + const { installedPlugins, disabled, updates, pluginOrder, setPluginOrder, frozenPlugins, hiddenPlugins } = useDeckyState(); const [_, setPluginOrderSetting] = useSetting<string[]>( 'pluginOrder', @@ -174,6 +191,7 @@ export default function PluginList({ isDeveloper }: { isDeveloper: boolean }) { position: pluginOrder.indexOf(name), data: { name, + disabled: disabled.some(disabledPlugin => disabledPlugin.name === name), frozen, hidden, isDeveloper, |
