diff --git a/src/main/frontend/handler/dnd.cljs b/src/main/frontend/handler/dnd.cljs index c7b571a0c..2646641e5 100644 --- a/src/main/frontend/handler/dnd.cljs +++ b/src/main/frontend/handler/dnd.cljs @@ -18,25 +18,23 @@ 2. Sometimes we might need to move a parent block to it's own child. " [current-block target-block top? nested?] - (if-not (every? map? [current-block target-block]) - (log/error :dnd/move-block-argument-error - {:current-block current-block :target-block target-block}) - (let [[current-node target-node] - (mapv outliner-core/block [current-block target-block])] - (cond - top? - (let [first-child? - (= (tree/-get-parent-id target-node) - (tree/-get-left-id target-node))] - (if first-child? - (let [parent (tree/-get-parent target-node)] - (outliner-core/move-subtree current-node parent false)) - (outliner-core/move-subtree current-node target-node true))) - nested? - (outliner-core/move-subtree current-node target-node false) + (when (every? map? [current-block target-block]) + (let [[current-node target-node] + (mapv outliner-core/block [current-block target-block])] + (cond + top? + (let [first-child? + (= (tree/-get-parent-id target-node) + (tree/-get-left-id target-node))] + (if first-child? + (let [parent (tree/-get-parent target-node)] + (outliner-core/move-subtree current-node parent false)) + (outliner-core/move-subtree current-node target-node true))) + nested? + (outliner-core/move-subtree current-node target-node false) - :else - (outliner-core/move-subtree current-node target-node true)) - (let [repo (state/get-current-repo)] - (db/refresh repo {:key :block/change - :data [(:data current-node) (:data target-node)]}))))) + :else + (outliner-core/move-subtree current-node target-node true)) + (let [repo (state/get-current-repo)] + (db/refresh repo {:key :block/change + :data [(:data current-node) (:data target-node)]})))))