summaryrefslogtreecommitdiff
path: root/frontend/src/components/modals/PluginUninstallModal.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/components/modals/PluginUninstallModal.tsx')
-rw-r--r--frontend/src/components/modals/PluginUninstallModal.tsx12
1 files changed, 11 insertions, 1 deletions
diff --git a/frontend/src/components/modals/PluginUninstallModal.tsx b/frontend/src/components/modals/PluginUninstallModal.tsx
index be479859..37d3d789 100644
--- a/frontend/src/components/modals/PluginUninstallModal.tsx
+++ b/frontend/src/components/modals/PluginUninstallModal.tsx
@@ -2,8 +2,10 @@ import { ConfirmModal, Spinner } from '@decky/ui';
import { FC, useState } from 'react';
import { uninstallPlugin } from '../../plugin';
+import { DeckyState } from '../DeckyState';
interface PluginUninstallModalProps {
+ deckyState: DeckyState;
name: string;
title: string;
buttonText: string;
@@ -11,7 +13,14 @@ interface PluginUninstallModalProps {
closeModal?(): void;
}
-const PluginUninstallModal: FC<PluginUninstallModalProps> = ({ name, title, buttonText, description, closeModal }) => {
+const PluginUninstallModal: FC<PluginUninstallModalProps> = ({
+ name,
+ title,
+ buttonText,
+ description,
+ deckyState,
+ closeModal,
+}) => {
const [uninstalling, setUninstalling] = useState<boolean>(false);
return (
<ConfirmModal
@@ -19,6 +28,7 @@ const PluginUninstallModal: FC<PluginUninstallModalProps> = ({ name, title, butt
onOK={async () => {
setUninstalling(true);
await uninstallPlugin(name);
+ deckyState.setDisabledPlugins(deckyState.publicState().disabledPlugins.filter((d) => d.name !== name));
// uninstalling a plugin resets the hidden setting for it server-side
// we invalidate here so if you re-install it, you won't have an out-of-date hidden filter
await DeckyPluginLoader.frozenPluginsService.invalidate();