Переглянути джерело

fix: 调整mutate重置状态

xyh 2 роки тому
батько
коміт
6eca704b39

+ 3 - 2
packages/app/src/hooks/use-table-event/index.ts

@@ -43,13 +43,14 @@ export function useTableDeleteEvent<P>(
 
   const {mutate} = useMutation(fn, {
     onSuccess(data) {
-      setPendingId('');
-
       if (data.msg === '200') {
         onFetch();
         message.success('删除成功');
       }
     },
+    onSettled() {
+      setPendingId('');
+    },
   });
 
   const findPendintId = useLatest(findId);

+ 3 - 1
packages/app/src/pages/gs-error-log/table/hooks.tsx

@@ -27,10 +27,12 @@ function useRetry(refetch: () => void) {
     onSuccess({msg}) {
       if (msg === '200') {
         message.success('已重试');
-        setPendingId('');
         refetch();
       }
     },
+    onSettled() {
+      setPendingId('');
+    },
   });
 
   function onRetry(data: GSErrorListData) {

+ 11 - 6
packages/app/src/stores/tab.ts

@@ -96,30 +96,35 @@ export const tabStore = createStore<State & Action>(function (set) {
         const result = reducer(prev.tabList, value);
 
         switch (value.type) {
-          case 'ADD':
+          case 'ADD': // 新增后key改为最后一个
             nextActiveKey = value.payload.key;
             break;
           case 'REMOVE': {
+            // 如果关闭的是当前active 修改为active的前一个
             const idx = prev.tabList.findIndex(
               val => val.key === value.payload,
             );
-            idx >= 0 && (nextActiveKey = prev.tabList[idx].key);
+
+            prev.activeKey === prev.tabList[idx].key &&
+              (nextActiveKey = prev.tabList[idx - 1].key);
+
             break;
           }
-          case 'REMOVE_OTHER':
+          case 'REMOVE_OTHER': // 修改为关闭的那个
             nextActiveKey = value.payload;
             break;
           case 'REMOVE_RIGHT': {
+            // 判断是否关闭了active 如果关闭了则显示触发的那个
             result.findIndex(val => val.key === prev.activeKey) < 0 &&
               (nextActiveKey = value.payload);
             break;
           }
-          case 'CLEAR':
+          case 'CLEAR': // 显示首页
             nextActiveKey = '-1';
             break;
-          case 'SORT': {
+          case 'SORT':
+            // 不需要操作
             break;
-          }
         }
 
         return {tabList: result, activeKey: nextActiveKey};