mirror of https://github.com/logseq/logseq
enhance(perf): delete block
parent
34222b3436
commit
d69c7ab66c
|
@ -959,8 +959,9 @@
|
||||||
(let [repo (state/get-current-repo)]
|
(let [repo (state/get-current-repo)]
|
||||||
(pipeline/invoke-hooks data)
|
(pipeline/invoke-hooks data)
|
||||||
|
|
||||||
(ipc/ipc :db-transact repo (pr-str (:tx-data data)) (pr-str (:tx-meta data)))
|
(when (util/electron?)
|
||||||
(state/pub-event! [:search/transact-data repo (:search-indice data)])
|
(ipc/ipc :db-transact repo (pr-str (:tx-data data)) (pr-str (:tx-meta data))))
|
||||||
|
|
||||||
nil))
|
nil))
|
||||||
|
|
||||||
(defn run!
|
(defn run!
|
||||||
|
|
|
@ -9,7 +9,9 @@
|
||||||
[frontend.worker.state :as worker-state]
|
[frontend.worker.state :as worker-state]
|
||||||
[frontend.worker.pipeline :as pipeline]
|
[frontend.worker.pipeline :as pipeline]
|
||||||
[frontend.worker.search :as search]
|
[frontend.worker.search :as search]
|
||||||
[frontend.worker.util :as worker-util]))
|
[frontend.worker.util :as worker-util]
|
||||||
|
[promesa.core :as p]
|
||||||
|
[cljs-bean.core :as bean]))
|
||||||
|
|
||||||
|
|
||||||
(defn- entity-datoms=>attr->datom
|
(defn- entity-datoms=>attr->datom
|
||||||
|
@ -207,19 +209,25 @@
|
||||||
(fn [{:keys [tx-meta] :as tx-report}]
|
(fn [{:keys [tx-meta] :as tx-report}]
|
||||||
(let [{:keys [pipeline-replace?]} tx-meta
|
(let [{:keys [pipeline-replace?]} tx-meta
|
||||||
result (pipeline/invoke-hooks repo conn tx-report (worker-state/get-context))
|
result (pipeline/invoke-hooks repo conn tx-report (worker-state/get-context))
|
||||||
tx-report' (or (:tx-report result) tx-report)
|
tx-report' (or (:tx-report result) tx-report)]
|
||||||
;; TODO: delay search indice so that UI can be refreshed earlier
|
|
||||||
search-indice (search/sync-search-indice repo tx-report')]
|
|
||||||
(when-not pipeline-replace?
|
(when-not pipeline-replace?
|
||||||
(let [data (pr-str
|
(let [data (pr-str
|
||||||
(merge
|
(merge
|
||||||
{:request-id (:request-id tx-meta)
|
{:request-id (:request-id tx-meta)
|
||||||
:repo repo
|
:repo repo
|
||||||
:search-indice search-indice
|
|
||||||
:tx-data (:tx-data tx-report')
|
:tx-data (:tx-data tx-report')
|
||||||
:tx-meta tx-meta}
|
:tx-meta tx-meta}
|
||||||
(dissoc result :tx-report)))]
|
(dissoc result :tx-report)))]
|
||||||
(worker-util/post-message :sync-db-changes data)))))))
|
(worker-util/post-message :sync-db-changes data))
|
||||||
|
|
||||||
|
(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)))))))))))
|
||||||
|
|
||||||
(defn listen-to-db-changes!
|
(defn listen-to-db-changes!
|
||||||
[repo conn]
|
[repo conn]
|
||||||
|
|
|
@ -75,3 +75,7 @@
|
||||||
(defn set-worker-object!
|
(defn set-worker-object!
|
||||||
[worker]
|
[worker]
|
||||||
(swap! *state assoc :worker/object worker))
|
(swap! *state assoc :worker/object worker))
|
||||||
|
|
||||||
|
(defn get-worker-object
|
||||||
|
[]
|
||||||
|
(:worker/object @*state))
|
||||||
|
|
Loading…
Reference in New Issue