fix(rtc): avoid updating :block/order incorrectly

feat/tables
rcmerci 2024-06-26 14:43:24 +08:00
parent 3dc019b567
commit a42ac9ce30
1 changed files with 7 additions and 6 deletions

View File

@ -263,6 +263,8 @@
(case (:op remote-op) (case (:op remote-op)
:remove (dissoc affected-blocks-map (:block-uuid remote-op)) :remove (dissoc affected-blocks-map (:block-uuid remote-op))
:move (dissoc affected-blocks-map (:self remote-op)) :move (dissoc affected-blocks-map (:self remote-op))
;; remove block/order, parents in update-attrs, if there're some unpushed local move-ops
:update-attrs (update affected-blocks-map (:self remote-op) dissoc :block/order :parents)
;; default ;; default
affected-blocks-map)) affected-blocks-map))
@ -335,7 +337,6 @@
:block/tags :block/tags
:block/link :block/link
:block/journal-day :block/journal-day
:block/order
:class/parent :class/parent
:class/schema.properties :class/schema.properties
:property/schema.classes}) :property/schema.classes})
@ -466,14 +467,14 @@
(defn- apply-remote-update-ops (defn- apply-remote-update-ops
[repo conn update-ops] [repo conn update-ops]
(doseq [{:keys [parents left self] :as op-value} update-ops] (doseq [{:keys [parents self] block-order :block/order :as op-value} update-ops]
(when (and parents left) (when (and parents block-order)
(let [r (check-block-pos @conn self parents left)] (let [r (check-block-pos @conn self parents block-order)]
(case r (case r
:not-exist :not-exist
(insert-or-move-block repo conn self parents left false op-value) (insert-or-move-block repo conn self parents block-order false op-value)
:wrong-pos :wrong-pos
(insert-or-move-block repo conn self parents left true op-value) (insert-or-move-block repo conn self parents block-order true op-value)
nil))) nil)))
(update-block-attrs repo conn self op-value))) (update-block-attrs repo conn self op-value)))