Tienson Qin 1 tahun lalu
induk
melakukan
6173879ca0

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

@@ -638,9 +638,7 @@
                               :block/parent parent
                               :block/left left}]
                        (cond-> (if (de/entity? block)
-                                 (do
-                                   (prn :debug :level (:block/level block))
-                                   (assoc m :block/level (:block/level block)))
+                                 (assoc m :block/level (:block/level block))
                                  (merge block m))
                            ;; We'll keep the original `:db/id` if it's a move operation,
                            ;; e.g. internal cut or drag and drop shouldn't change the ids.

+ 51 - 52
src/main/frontend/handler/editor.cljs

@@ -793,64 +793,63 @@
                         concat-prev-block? (boolean (and prev-block new-content))
                         transact-opts {:outliner-op :delete-blocks}
                         db-based? (config/db-based-graph? repo)]
-                    (p/do!
-                     (ui-outliner-tx/transact!
-                      transact-opts
-                      (cond
-                        (and prev-block (:block/name prev-block)
-                             (not= (:db/id prev-block) (:db/id (:block/parent block)))
-                             (db-model/hidden-page? (:block/page block))) ; embed page
-                        nil
-
-                        concat-prev-block?
-                        (let [new-properties (merge (:block/properties (db/entity (:db/id prev-block)))
-                                                    (:block/properties (db/entity (:db/id block))))]
-                          (if (seq (:block/_refs (db/entity (:db/id block))))
-                            (let [block-right (outliner-core/get-right-sibling (db/get-db) (:db/id block))]
-                              (delete-block-fn prev-block)
-                              (save-block! repo block new-content {:editor/op :delete})
-                              (outliner-save-block! {:db/id (:db/id block)
-                                                     :block/parent (:db/id (:block/parent prev-block))
-                                                     :block/left (or (:db/id (:block/left prev-block))
-                                                                     (:db/id (:block/parent prev-block)))})
+                    (ui-outliner-tx/transact!
+                     transact-opts
+                     (cond
+                       (and prev-block (:block/name prev-block)
+                            (not= (:db/id prev-block) (:db/id (:block/parent block)))
+                            (db-model/hidden-page? (:block/page block))) ; embed page
+                       nil
+
+                       concat-prev-block?
+                       (let [new-properties (merge (:block/properties (db/entity (:db/id prev-block)))
+                                                   (:block/properties (db/entity (:db/id block))))]
+                         (if (seq (:block/_refs (db/entity (:db/id block))))
+                           (let [block-right (outliner-core/get-right-sibling (db/get-db) (:db/id block))]
+                             (delete-block-fn prev-block)
+                             (save-block! repo block new-content {:editor/op :delete})
+                             (outliner-save-block! {:db/id (:db/id block)
+                                                    :block/parent (:db/id (:block/parent prev-block))
+                                                    :block/left (or (:db/id (:block/left prev-block))
+                                                                    (:db/id (:block/parent prev-block)))})
 
                              ;; block->right needs to point its `left` to block->left
-                              (when (and block-right (not= (:db/id (:block/parent prev-block))
-                                                           (:db/id (:block/parent block))))
-                                (outliner-save-block! {:db/id (:db/id block-right)
-                                                       :block/left (:db/id (:block/left block))}))
+                             (when (and block-right (not= (:db/id (:block/parent prev-block))
+                                                          (:db/id (:block/parent block))))
+                               (outliner-save-block! {:db/id (:db/id block-right)
+                                                      :block/left (:db/id (:block/left block))}))
 
                              ;; update prev-block's children to point to the refed block
-                              (when (or (:block/collapsed? prev-block)
-                                        (= (:db/id prev-block) (:db/id (:block/parent block))))
-                                (let [children (:block/_parent prev-block)]
-                                  (doseq [child children]
-                                    (when-not (= (:db/id child) (:db/id block))
-                                      (outliner-save-block! {:db/id (:db/id child)
-                                                             :block/parent (:db/id block)
-                                                             :block/left (:db/id block)})))))
+                             (when (or (:block/collapsed? prev-block)
+                                       (= (:db/id prev-block) (:db/id (:block/parent block))))
+                               (let [children (:block/_parent prev-block)]
+                                 (doseq [child children]
+                                   (when-not (= (:db/id child) (:db/id block))
+                                     (outliner-save-block! {:db/id (:db/id child)
+                                                            :block/parent (:db/id block)
+                                                            :block/left (:db/id block)})))))
 
                              ;; parent will be removed
-                              (when (= (:db/id prev-block) (:db/id (:block/parent block)))
-                                (when-let [parent-right (outliner-core/get-right-sibling (db/get-db) (:db/id prev-block))]
-                                  (outliner-save-block! {:db/id (:db/id parent-right)
-                                                         :block/left (:db/id block)})))
-
-                              (when db-based?
-                                (outliner-save-block! {:db/id (:db/id block)
-                                                       :block/properties new-properties})))
-
-                            (do
-                              (delete-block-fn block)
-                              (save-block! repo prev-block new-content {:editor/op :delete})
-                              (when db-based?
-                                (outliner-save-block! {:db/id (:db/id prev-block)
-                                                       :block/properties new-properties})))))
-
-                        :else
-                        (delete-block-fn block)))
-
-                     (when edit-block-fn (edit-block-fn))))))))))))
+                             (when (= (:db/id prev-block) (:db/id (:block/parent block)))
+                               (when-let [parent-right (outliner-core/get-right-sibling (db/get-db) (:db/id prev-block))]
+                                 (outliner-save-block! {:db/id (:db/id parent-right)
+                                                        :block/left (:db/id block)})))
+
+                             (when db-based?
+                               (outliner-save-block! {:db/id (:db/id block)
+                                                      :block/properties new-properties})))
+
+                           (do
+                             (delete-block-fn block)
+                             (save-block! repo prev-block new-content {:editor/op :delete})
+                             (when db-based?
+                               (outliner-save-block! {:db/id (:db/id prev-block)
+                                                      :block/properties new-properties})))))
+
+                       :else
+                       (delete-block-fn block)))
+
+                    (when edit-block-fn (edit-block-fn)))))))))))
   (state/set-editor-op! nil))
 
 (defn delete-blocks!