|
|
@@ -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]
|