mirror of https://github.com/logseq/logseq
fix: :batch/txs should be vector not nil
parent
bbe9e9d323
commit
cccb4fcb0b
|
@ -37,10 +37,10 @@
|
|||
|
||||
(defn conj-batch-txs!
|
||||
[tx-data]
|
||||
(swap! worker-state/*state update :batch/txs (fn [data] (into data tx-data))))
|
||||
(swap! worker-state/*state update :batch/txs (fn [data] ((fnil into []) data tx-data))))
|
||||
|
||||
(defn exit-batch-txs-mode!
|
||||
[]
|
||||
(swap! worker-state/*state assoc :batch/txs nil)
|
||||
(swap! worker-state/*state assoc :batch/txs [])
|
||||
(swap! worker-state/*state assoc :batch/db-before nil)
|
||||
(swap! worker-state/*state assoc :batch/opts nil))
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
[frontend.worker.state :as worker-state]
|
||||
[frontend.worker.util :as worker-util]
|
||||
[promesa.core :as p]
|
||||
[frontend.worker.batch-tx :as batch-tx]))
|
||||
[frontend.worker.batch-tx :as batch-tx]
|
||||
[frontend.schema-register :as sr]))
|
||||
|
||||
|
||||
(defn- entity-datoms=>attr->datom
|
||||
|
@ -34,6 +35,18 @@
|
|||
(defmulti listen-db-changes
|
||||
(fn [listen-key & _] listen-key))
|
||||
|
||||
(sr/defkeyword :sync-db-to-main-thread
|
||||
"DB-listener key.
|
||||
sync worker-db changes to main-thread")
|
||||
|
||||
(sr/defkeyword :gen-rtc-ops
|
||||
"DB-listener key.
|
||||
generate rtc ops.")
|
||||
|
||||
(sr/defkeyword :gen-undo-ops
|
||||
"DB-listener key.
|
||||
generate undo ops.")
|
||||
|
||||
(defmethod listen-db-changes :sync-db-to-main-thread
|
||||
[_ {:keys [tx-meta repo conn] :as tx-report}]
|
||||
(let [{:keys [from-disk?]} tx-meta
|
||||
|
@ -50,13 +63,13 @@
|
|||
|
||||
(when-not from-disk?
|
||||
(p/do!
|
||||
(let [{:keys [blocks-to-remove-set blocks-to-add]} (search/sync-search-indice repo tx-report')
|
||||
^js wo (worker-state/get-worker-object)]
|
||||
(when wo
|
||||
(when (seq blocks-to-remove-set)
|
||||
(.search-delete-blocks wo repo (bean/->js blocks-to-remove-set)))
|
||||
(when (seq blocks-to-add)
|
||||
(.search-upsert-blocks wo repo (bean/->js blocks-to-add))))))))))
|
||||
(let [{:keys [blocks-to-remove-set blocks-to-add]} (search/sync-search-indice repo tx-report')
|
||||
^js wo (worker-state/get-worker-object)]
|
||||
(when wo
|
||||
(when (seq blocks-to-remove-set)
|
||||
(.search-delete-blocks wo repo (bean/->js blocks-to-remove-set)))
|
||||
(when (seq blocks-to-add)
|
||||
(.search-upsert-blocks wo repo (bean/->js blocks-to-add))))))))))
|
||||
|
||||
|
||||
(defn listen-db-changes!
|
||||
|
|
|
@ -486,14 +486,16 @@
|
|||
(defn- move-all-blocks-to-another-page
|
||||
[repo conn from-page-name to-page-name]
|
||||
(let [blocks (ldb/get-page-blocks @conn from-page-name {})
|
||||
from-page-block (some-> (first blocks) :block/page)
|
||||
target-page-block (d/entity @conn [:block/name to-page-name])]
|
||||
(when (and (seq blocks) target-page-block)
|
||||
(outliner-tx/transact!
|
||||
{:persist-op? true
|
||||
:gen-undo-ops? false
|
||||
:transact-opts {:repo repo
|
||||
:conn conn}}
|
||||
(outliner-core/move-blocks! repo conn blocks target-page-block false)))))
|
||||
(let [blocks* (ldb/sort-by-left blocks from-page-block)]
|
||||
(outliner-tx/transact!
|
||||
{:persist-op? true
|
||||
:gen-undo-ops? false
|
||||
:transact-opts {:repo repo
|
||||
:conn conn}}
|
||||
(outliner-core/move-blocks! repo conn blocks* target-page-block false))))))
|
||||
|
||||
(defn- empty-page?
|
||||
"1. page has no child-block
|
||||
|
|
|
@ -18,3 +18,16 @@
|
|||
|
||||
(f)
|
||||
(d/unlisten! test-db-conn :frontend.worker.db-listener/listen-db-changes!)))
|
||||
|
||||
|
||||
(defn listen-test-db-fixture
|
||||
[handler-keys]
|
||||
(fn [f]
|
||||
(let [test-db-conn (conn/get-db test-helper/test-db-name-db-version false)]
|
||||
(assert (some? test-db-conn))
|
||||
(worker-undo-redo/clear-undo-redo-stack)
|
||||
(worker-db-listener/listen-db-changes! test-helper/test-db-name-db-version test-db-conn
|
||||
{:handler-keys handler-keys})
|
||||
|
||||
(f)
|
||||
(d/unlisten! test-db-conn :frontend.worker.db-listener/listen-db-changes!))))
|
||||
|
|
|
@ -12,11 +12,13 @@
|
|||
[logseq.common.config :as common-config]
|
||||
[logseq.db :as ldb]
|
||||
[logseq.outliner.core :as outliner-core]
|
||||
[logseq.outliner.transaction :as outliner-tx]))
|
||||
[logseq.outliner.transaction :as outliner-tx]
|
||||
[frontend.worker.fixtures :as worker-fixtures]))
|
||||
|
||||
|
||||
(use-fixtures :each
|
||||
test-helper/db-based-start-and-destroy-db-map-fixture)
|
||||
test-helper/db-based-start-and-destroy-db
|
||||
(worker-fixtures/listen-test-db-fixture [:sync-db-to-main-thread]))
|
||||
|
||||
(deftest filter-remote-data-by-local-unpushed-ops-test
|
||||
(testing "case1"
|
||||
|
@ -477,7 +479,7 @@ server: ;; remove 2
|
|||
(is (nil? (d/entity @conn [:block/uuid page1-uuid])))))))
|
||||
|
||||
|
||||
(deftest same-name-two-pages-merge-test
|
||||
(deftest ^:wip same-name-two-pages-merge-test
|
||||
(let [repo (state/get-current-repo)
|
||||
conn (conn/get-db repo false)
|
||||
date-formatter (common-config/get-date-formatter (worker-state/get-config repo))
|
||||
|
|
Loading…
Reference in New Issue