fix(outliner): remove drag and drop error

pull/1656/head
defclass 2021-04-06 16:08:50 +08:00
parent a37d788f12
commit cab8804c24
1 changed files with 19 additions and 21 deletions

View File

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