Tienson Qin před 2 roky
rodič
revize
deb90ecfea
1 změnil soubory, kde provedl 13 přidání a 7 odebrání
  1. 13 7
      src/main/frontend/modules/outliner/core.cljs

+ 13 - 7
src/main/frontend/modules/outliner/core.cljs

@@ -406,13 +406,19 @@
 (defn- assign-temp-id
   [blocks replace-empty-target? target-block]
   (->> (map-indexed (fn [idx block]
-                  (let [replacing-block? (and replace-empty-target? (zero? idx))]
-                    (if replacing-block?
-                      [[:db/retractEntity (:db/id target-block)] ; retract target-block first
-                       (assoc block
-                              :db/id (or (:db/id block) (dec (- idx)))
-                              :block/left (:db/id (:block/left target-block)))]
-                      [(assoc block :db/id (dec (- idx)))]))) blocks)
+                      (let [replacing-block? (and replace-empty-target? (zero? idx))]
+                        (if replacing-block?
+                          (let [db-id (or (:db/id block) (dec (- idx)))]
+                            (if (seq (:block/_parent target-block)) ; target-block has children
+                              ;; update block properties
+                              [(assoc block
+                                      :db/id (:db/id target-block)
+                                      :block/uuid (:block/uuid target-block))]
+                              [[:db/retractEntity (:db/id target-block)] ; retract target-block first
+                               (assoc block
+                                      :db/id db-id
+                                      :block/left (:db/id (:block/left target-block)))]))
+                          [(assoc block :db/id (dec (- idx)))]))) blocks)
        (apply concat)))
 
 (defn- find-outdented-block-prev-hop