瀏覽代碼

fix: outdent property child block replaces its parent

Fixes LOG-3141
Tienson Qin 1 年之前
父節點
當前提交
bb5a3364e6
共有 1 個文件被更改,包括 11 次插入10 次删除
  1. 11 10
      deps/outliner/src/logseq/outliner/core.cljs

+ 11 - 10
deps/outliner/src/logseq/outliner/core.cljs

@@ -761,17 +761,18 @@
                                             :block/page target-page}) children-ids)))
         target-from-property (:logseq.property/created-from-property target-block)
         block-from-property (:logseq.property/created-from-property block)
-        move-single-property-value? (and block-from-property (= :db.cardinality/one (:db/cardinality block-from-property)))
-        property-tx (let [retract-property-tx (when (or (and (not sibling?) target-from-property block-from-property)
-                                                        (and sibling? (nil? target-from-property) block-from-property))
-                                                [[:db/retract (:db/id (:block/parent block)) (:db/ident block-from-property) (:db/id block)]
-                                                 [:db/retract (:db/id block) :logseq.property/created-from-property]])
-                          add-property-tx (when (and sibling? target-from-property (not block-from-property))
-                                            [[:db/add (:db/id block) :logseq.property/created-from-property (:db/id target-from-property)]
-                                             [:db/add (:db/id (:block/parent target-block)) (:db/ident target-from-property) (:db/id block)]])]
-                      (concat retract-property-tx add-property-tx))]
+        move-single-property-value? (or (= :db.cardinality/one (:db/cardinality block-from-property))
+                                        (= :db.cardinality/one (:db/cardinality target-from-property)))]
     (when-not move-single-property-value?
-      (common-util/concat-without-nil tx-data children-page-tx property-tx))))
+      (let [property-tx (let [retract-property-tx (when (or (and (not sibling?) target-from-property block-from-property)
+                                                            (and sibling? (nil? target-from-property) block-from-property))
+                                                    [[:db/retract (:db/id (:block/parent block)) (:db/ident block-from-property) (:db/id block)]
+                                                     [:db/retract (:db/id block) :logseq.property/created-from-property]])
+                              add-property-tx (when (and sibling? target-from-property (not block-from-property))
+                                                [[:db/add (:db/id block) :logseq.property/created-from-property (:db/id target-from-property)]
+                                                 [:db/add (:db/id (:block/parent target-block)) (:db/ident target-from-property) (:db/id block)]])]
+                          (concat retract-property-tx add-property-tx))]
+        (common-util/concat-without-nil tx-data children-page-tx property-tx)))))
 
 (defn- move-blocks
   "Move `blocks` to `target-block` as siblings or children."