soumaeda 2 лет назад
Родитель
Сommit
1e95c1611f

+ 7 - 3
apps/app/src/features/growi-plugin/client/components/Admin/PluginsExtensionPageContents/PluginDeleteModal.tsx

@@ -10,12 +10,15 @@ import { apiv3Delete } from '~/client/util/apiv3-client';
 import { toastSuccess, toastError } from '~/client/util/toastr';
 import { usePluginDeleteModal } from '~/stores/modal';
 
+import { useSWRxAdminPlugins } from '../../../stores/admin-plugins';
+
 
 export const PluginDeleteModal: React.FC = () => {
 
   const { t } = useTranslation('admin');
+  const { mutate } = useSWRxAdminPlugins();
   const { data: pluginDeleteModal, close: closePluginDeleteModal } = usePluginDeleteModal();
-  const isShown = pluginDeleteModal?.isShown;
+  const isOpen = pluginDeleteModal?.isOpen;
   const name = pluginDeleteModal?.name;
   const url = pluginDeleteModal?.url;
   const id = pluginDeleteModal?.id;
@@ -32,11 +35,12 @@ export const PluginDeleteModal: React.FC = () => {
       const pluginName = res.data.pluginName;
       closePluginDeleteModal();
       toastSuccess(t('toaster.remove_plugin_success', { pluginName }));
+      mutate();
     }
     catch (err) {
       toastError(err);
     }
-  }, [id, closePluginDeleteModal, t]);
+  }, [id, closePluginDeleteModal, t, mutate]);
 
   const headerContent = () => {
     return (
@@ -66,7 +70,7 @@ export const PluginDeleteModal: React.FC = () => {
   };
 
   return (
-    <Modal isOpen={isShown} toggle={toggleHandler}>
+    <Modal isOpen={isOpen} toggle={toggleHandler}>
       <ModalHeader tag="h4" toggle={toggleHandler} className="bg-danger text-light" name={name}>
         {headerContent()}
       </ModalHeader>

+ 4 - 8
apps/app/src/stores/modal.tsx

@@ -738,8 +738,7 @@ export const useLinkEditModal = (): SWRResponse<LinkEditModalStatus, Error> & Li
  * PluginDeleteModal
  */
 type PluginDeleteModalStatus = {
-  isShown: boolean,
-  plugins?: IGrowiPluginHasId[]
+  isOpen: boolean,
   name: string,
   url: string,
   id: string,
@@ -758,8 +757,7 @@ export interface PluginData {
 
 export const usePluginDeleteModal = (): SWRResponse<PluginDeleteModalStatus, Error> & PluginDeleteModalUtils => {
   const initialStatus: PluginDeleteModalStatus = {
-    isShown: false,
-    plugins: [],
+    isOpen: false,
     name: '',
     url: '',
     id: '',
@@ -770,10 +768,9 @@ export const usePluginDeleteModal = (): SWRResponse<PluginDeleteModalStatus, Err
 
   const open = useCallback((plugin: IGrowiPluginHasId) => {
 
-    // Update the plugins field in the current state with the extractedPlugins
     mutate({
       ...swrResponse.data,
-      isShown: true,
+      isOpen: true,
       name: plugin.meta.name,
       url: plugin.origin.url,
       id: plugin._id,
@@ -783,8 +780,7 @@ export const usePluginDeleteModal = (): SWRResponse<PluginDeleteModalStatus, Err
   const close = useCallback((): void => {
     mutate({
       ...swrResponse.data,
-      isShown: false,
-      plugins: [],
+      isOpen: false,
       name: '',
       url: '',
       id: '',