Browse Source

fix: can't move page node up/down

Tienson Qin 1 month ago
parent
commit
9bb246bc26
2 changed files with 21 additions and 18 deletions
  1. 1 3
      deps/outliner/src/logseq/outliner/core.cljs
  2. 20 15
      src/main/frontend/handler/editor.cljs

+ 1 - 3
deps/outliner/src/logseq/outliner/core.cljs

@@ -1025,9 +1025,7 @@
             last-top-block-right (ldb/get-right-sibling last-top-block)
             right (or
                    last-top-block-right
-                   (let [parent (:block/parent last-top-block)
-                         parent (when (:block/page (d/entity db (:db/id parent)))
-                                  parent)]
+                   (let [parent (:block/parent last-top-block)]
                      (ldb/get-right-sibling parent)))
             sibling? (= (:db/id (:block/parent last-top-block))
                         (:db/id (:block/parent right)))]

+ 20 - 15
src/main/frontend/handler/editor.cljs

@@ -807,9 +807,16 @@
 
 (declare expand-block!)
 
+(defn- one-page-another-block
+  [block1 block2]
+  (and
+   (not (every? ldb/page? [block1 block2]))
+   (or (ldb/page? block1)
+       (ldb/page? block2))))
+
 (defn delete-block-inner!
   [repo {:keys [block-id value format config block-container current-block next-block delete-concat?]}]
-  (when (and block-id (not (some ldb/page? [current-block next-block])))
+  (when (and block-id (not (one-page-another-block current-block next-block)))
     (when-let [block-e (db/entity [:block/uuid block-id])]
       (let [prev-block (db-model/get-prev (db/get-db) (:db/id block-e))
             input-empty? (string/blank? (state/get-edit-content))]
@@ -866,22 +873,20 @@
                      (edit-block! (db/entity (:db/id next-block)) 0)))
 
                   concat-prev-block?
-                  (when-not (some ldb/page? [prev-block block])
-                    (let [children (:block/_parent (db/entity (:db/id block)))]
-                      (p/do!
-                       (state/set-state! :editor/edit-block-fn edit-block-f)
-                       (ui-outliner-tx/transact!
-                        transact-opts
-                        (when (seq children)
-                          (outliner-op/move-blocks! children prev-block {:sibling? false}))
-                        (delete-block-aux! block)
-                        (save-block! repo prev-block new-content {})))))
-
-                  :else
-                  (when-not (some ldb/page? [prev-block block])
+                  (let [children (:block/_parent (db/entity (:db/id block)))]
                     (p/do!
                      (state/set-state! :editor/edit-block-fn edit-block-f)
-                     (delete-block-aux! block))))))))))))
+                     (ui-outliner-tx/transact!
+                      transact-opts
+                      (when (seq children)
+                        (outliner-op/move-blocks! children prev-block {:sibling? false}))
+                      (delete-block-aux! block)
+                      (save-block! repo prev-block new-content {}))))
+
+                  :else
+                  (p/do!
+                   (state/set-state! :editor/edit-block-fn edit-block-f)
+                   (delete-block-aux! block)))))))))))
 
 (defn move-blocks!
   [blocks target opts]