yohei0125 3 лет назад
Родитель
Сommit
36e6a7398b
1 измененных файлов с 12 добавлено и 9 удалено
  1. 12 9
      packages/app/src/server/service/page-operation.ts

+ 12 - 9
packages/app/src/server/service/page-operation.ts

@@ -33,27 +33,30 @@ class PageOperationService {
 
     const fromPaths = pageOperations.map(op => op.fromPath).filter((p): p is string => p != null);
     const toPaths = pageOperations.map(op => op.toPath).filter((p): p is string => p != null);
-    const fromAndToPaths = [...fromPaths, ...toPaths];
 
     if (isRecursively) {
       if (fromPathToOp != null && !isTrashPage(fromPathToOp)) {
-        const flag = fromAndToPaths.some(p => isEitherOfPathAreaOverlap(p, fromPathToOp));
-        if (flag) return false;
+        const fromFlag = fromPaths.some(p => isEitherOfPathAreaOverlap(p, fromPathToOp));
+        const toFlag = toPaths.some(p => isEitherOfPathAreaOverlap(p, fromPathToOp));
+        if (fromFlag || toFlag) return false;
       }
       if (toPathToOp != null && !isTrashPage(toPathToOp)) {
-        const flag = fromAndToPaths.some(p => isPathAreaOverlap(p, toPathToOp));
-        if (flag) return false;
+        const fromFlag = fromPaths.some(p => isPathAreaOverlap(p, toPathToOp));
+        const toFlag = toPaths.some(p => isPathAreaOverlap(p, toPathToOp));
+        if (fromFlag || toFlag) return false;
       }
 
     }
     else {
       if (fromPathToOp != null && !isTrashPage(fromPathToOp)) {
-        const flag = fromAndToPaths.some(p => isPathAreaOverlap(p, fromPathToOp));
-        if (flag) return false;
+        const fromFlag = fromPaths.some(p => isPathAreaOverlap(p, fromPathToOp));
+        const toFlag = toPaths.some(p => isPathAreaOverlap(p, fromPathToOp));
+        if (fromFlag || toFlag) return false;
       }
       if (toPathToOp != null && !isTrashPage(toPathToOp)) {
-        const flag = fromAndToPaths.some(p => isPathAreaOverlap(p, toPathToOp));
-        if (flag) return false;
+        const fromFlag = fromPaths.some(p => isPathAreaOverlap(p, toPathToOp));
+        const toFlag = toPaths.some(p => isPathAreaOverlap(p, toPathToOp));
+        if (fromFlag || toFlag) return false;
       }
     }