mirror of
https://github.com/logseq/logseq.git
synced 2026-02-01 22:47:36 +00:00
fix: rtc extra offline e2e tests
This commit is contained in:
4
deps/db/src/logseq/db.cljs
vendored
4
deps/db/src/logseq/db.cljs
vendored
@@ -13,6 +13,7 @@
|
||||
[logseq.db.common.delete-blocks :as delete-blocks] ;; Load entity extensions
|
||||
[logseq.db.common.entity-plus :as entity-plus]
|
||||
[logseq.db.common.initial-data :as common-initial-data]
|
||||
[logseq.db.common.normalize :as db-normalize]
|
||||
[logseq.db.frontend.class :as db-class]
|
||||
[logseq.db.frontend.db :as db-db]
|
||||
[logseq.db.frontend.entity-util :as entity-util]
|
||||
@@ -216,7 +217,8 @@
|
||||
(if (fn? filter-tx-data)
|
||||
(filter-tx-data temp-after-db tx-data)
|
||||
tx-data)
|
||||
remove-conflict-datoms)]
|
||||
remove-conflict-datoms
|
||||
(db-normalize/remove-deleted-add-datoms temp-after-db))]
|
||||
(transact! conn tx-data' tx-meta))))))
|
||||
|
||||
(def page? entity-util/page?)
|
||||
|
||||
22
deps/db/src/logseq/db/common/normalize.cljs
vendored
22
deps/db/src/logseq/db/common/normalize.cljs
vendored
@@ -79,9 +79,31 @@
|
||||
3))
|
||||
datoms))
|
||||
|
||||
(defn remove-deleted-add-datoms
|
||||
[db tx-data]
|
||||
(let [deleted (->>
|
||||
(keep
|
||||
(fn [d]
|
||||
(when (and (false? (:added d))
|
||||
(= :block/uuid (:a d))
|
||||
(nil? (d/entity db (:e d))))
|
||||
[(:e d) (:v d)]))
|
||||
tx-data))
|
||||
deleted-eids (set (map first deleted))
|
||||
deleted-uuids (set (map (fn [item] [:block/uuid (second item)]) deleted))]
|
||||
(if (seq deleted-eids)
|
||||
(remove (fn [d]
|
||||
(or (and (:added d) (contains? deleted-eids (:e d)))
|
||||
(and (not (= (:a d) :block/uuid))
|
||||
(or
|
||||
(contains? deleted-uuids (:e d))
|
||||
(contains? deleted-uuids (:v d)))))) tx-data)
|
||||
tx-data)))
|
||||
|
||||
(defn normalize-tx-data
|
||||
[db-after db-before tx-data]
|
||||
(->> tx-data
|
||||
(remove-deleted-add-datoms db-after)
|
||||
replace-attr-retract-with-retract-entity
|
||||
sort-datoms
|
||||
(keep
|
||||
|
||||
2
deps/outliner/src/logseq/outliner/core.cljs
vendored
2
deps/outliner/src/logseq/outliner/core.cljs
vendored
@@ -336,7 +336,7 @@
|
||||
[:db/retract (:db/id block) :block/order]
|
||||
[:db/retract (:db/id block) :block/page]])
|
||||
(let [ids (cons (:db/id this) (ldb/get-block-full-children-ids db (:db/id block)))
|
||||
txs (map (fn [id] [:db.fn/retractEntity id]) ids)]
|
||||
txs (map (fn [id] [:db/retractEntity id]) ids)]
|
||||
(swap! *txs-state concat txs)
|
||||
block-id)))))
|
||||
|
||||
|
||||
@@ -1129,9 +1129,7 @@
|
||||
(defn- apply-remote-tx-with-local-changes!
|
||||
[{:keys [conn local-txs reversed-tx-data safe-remote-tx-data remote-deleted-blocks
|
||||
temp-tx-meta *remote-tx-report *reversed-tx-report *remote-deleted-ids *rebase-tx-data]}]
|
||||
(let [batch-tx-meta {:rtc-tx? true
|
||||
;; Reverse/rebase batches can temporarily violate block schema.
|
||||
:skip-validate-db? true}]
|
||||
(let [batch-tx-meta {:rtc-tx? true}]
|
||||
(ldb/transact-with-temp-conn!
|
||||
conn
|
||||
batch-tx-meta
|
||||
@@ -1158,11 +1156,11 @@
|
||||
(set (map :block/uuid local-deleted-blocks)))]
|
||||
(when (seq rebased-tx-data)
|
||||
(ldb/transact! temp-conn rebased-tx-data (assoc tx-meta :op :rebase)))))
|
||||
;; 4. delete nodes and fix tx data
|
||||
;; 4. fix tx data and delete nodes
|
||||
db @temp-conn
|
||||
deleted-nodes (keep (fn [id] (d/entity db [:block/uuid id])) deleted-ids)]
|
||||
(delete-nodes! temp-conn deleted-nodes (assoc tx-meta :op :delete-blocks))
|
||||
(fix-tx! temp-conn remote-tx-report rebase-tx-report (assoc tx-meta :op :fix))))
|
||||
(fix-tx! temp-conn remote-tx-report rebase-tx-report (assoc tx-meta :op :fix))
|
||||
(delete-nodes! temp-conn deleted-nodes (assoc tx-meta :op :delete-blocks))))
|
||||
{:listen-db (fn [{:keys [tx-meta tx-data]}]
|
||||
(when-not (contains? #{:reverse :transact-remote-tx-data} (:op tx-meta))
|
||||
(swap! *rebase-tx-data into tx-data)))})))
|
||||
|
||||
Reference in New Issue
Block a user