mirror of https://github.com/logseq/logseq
chore: use refresh! in transact-react!
parent
700ff65c46
commit
831d27147b
|
@ -56,7 +56,7 @@
|
|||
get-current-marker get-current-page get-current-priority get-handler-keys set-key-value
|
||||
transact-react! remove-key! remove-q! remove-query-component! add-q! add-query-component! clear-query-state!
|
||||
clear-query-state-without-refs-and-embeds! get-block-blocks-cache-atom get-page-blocks-cache-atom kv q
|
||||
query-state query-components query-entity-in-component remove-custom-query! set-new-result! sub-key-value refresh]
|
||||
query-state query-components query-entity-in-component remove-custom-query! set-new-result! sub-key-value refresh!]
|
||||
|
||||
[frontend.db.query-custom
|
||||
custom-query]
|
||||
|
|
|
@ -275,45 +275,7 @@
|
|||
distinct)))
|
||||
[[key]])))
|
||||
|
||||
(defn transact-react!
|
||||
[repo-url tx-data {:keys [key data] :as handler-opts}]
|
||||
(when-not config/publishing?
|
||||
(let [repo-url (or repo-url (state/get-current-repo))
|
||||
tx-data (->> (util/remove-nils tx-data)
|
||||
(remove nil?))
|
||||
get-conn (fn [] (conn/get-conn repo-url false))]
|
||||
(when (and (seq tx-data) (get-conn))
|
||||
(let [tx-result (d/transact! (get-conn) (vec tx-data))
|
||||
db (:db-after tx-result)
|
||||
handler-keys (get-handler-keys handler-opts)]
|
||||
(doseq [handler-key handler-keys]
|
||||
(let [handler-key (vec (cons repo-url handler-key))]
|
||||
(when-let [cache (get @query-state handler-key)]
|
||||
(let [{:keys [query inputs transform-fn query-fn inputs-fn]} cache]
|
||||
(when (or query query-fn)
|
||||
(let [new-result (->
|
||||
(cond
|
||||
query-fn
|
||||
(profile
|
||||
"Query:"
|
||||
(doall (query-fn db)))
|
||||
|
||||
inputs-fn
|
||||
(let [inputs (inputs-fn)]
|
||||
(apply d/q query db inputs))
|
||||
|
||||
(keyword? query)
|
||||
(db-utils/get-key-value repo-url query)
|
||||
|
||||
(seq inputs)
|
||||
(apply d/q query db inputs)
|
||||
|
||||
:else
|
||||
(d/q query db))
|
||||
transform-fn)]
|
||||
(set-new-result! handler-key new-result))))))))))))
|
||||
|
||||
(defn refresh
|
||||
(defn refresh!
|
||||
[repo-url {:keys [key data] :as handler-opts}]
|
||||
(let [handler-keys (get-handler-keys handler-opts)
|
||||
db (conn/get-conn repo-url)]
|
||||
|
@ -344,6 +306,17 @@
|
|||
transform-fn)]
|
||||
(set-new-result! handler-key new-result)))))))))
|
||||
|
||||
(defn transact-react!
|
||||
[repo-url tx-data {:keys [key data] :as handler-opts}]
|
||||
(when-not config/publishing?
|
||||
(let [repo-url (or repo-url (state/get-current-repo))
|
||||
tx-data (->> (util/remove-nils tx-data)
|
||||
(remove nil?))
|
||||
get-conn (fn [] (conn/get-conn repo-url false))]
|
||||
(when (and (seq tx-data) (get-conn))
|
||||
(d/transact! (get-conn) (vec tx-data))
|
||||
(refresh! repo-url handler-opts)))))
|
||||
|
||||
(defn set-key-value
|
||||
[repo-url key value]
|
||||
(if value
|
||||
|
|
|
@ -36,5 +36,5 @@
|
|||
: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)]})))))
|
||||
(db/refresh! repo {:key :block/change
|
||||
:data [(:data current-node) (:data target-node)]})))))
|
||||
|
|
|
@ -311,7 +311,7 @@
|
|||
(outliner-core/save-node))
|
||||
(let [opts {:key :block/change
|
||||
:data [block]}]
|
||||
(db/refresh repo opts))))
|
||||
(db/refresh! repo opts))))
|
||||
|
||||
(repo-handler/push-if-auto-enabled! repo)))
|
||||
|
||||
|
@ -408,7 +408,7 @@
|
|||
;; :data (map (fn [block] (assoc block :block/page page)) blocks)}]
|
||||
;; (do (state/update-last-edit-block)
|
||||
;; #_(build-outliner-relation (first blocks) (first after-blocks))
|
||||
;; (db/refresh repo opts)
|
||||
;; (db/refresh! repo opts)
|
||||
;; (let [files (remove nil? files)]
|
||||
;; (when (seq files)
|
||||
;; (file-handler/alter-files repo files opts)))))
|
||||
|
@ -513,7 +513,7 @@
|
|||
"db refresh"
|
||||
(let [opts {:key :block/insert
|
||||
:data [current-block next-block]}]
|
||||
(db/refresh repo opts)))
|
||||
(db/refresh! repo opts)))
|
||||
(ok-handler next-block)
|
||||
(state/set-editor-op! nil))))
|
||||
|
||||
|
@ -716,7 +716,7 @@
|
|||
(->
|
||||
(outliner-core/block block)
|
||||
(outliner-core/delete-node))
|
||||
(db/refresh repo {:key :block/change :data [block]})
|
||||
(db/refresh! repo {:key :block/change :data [block]})
|
||||
(when (or (seq ref-pages) (seq ref-blocks))
|
||||
(ui-handler/re-render-root!))))))
|
||||
|
||||
|
@ -774,7 +774,7 @@
|
|||
(outliner-core/delete-nodes start-node end-node lookup-refs)
|
||||
(let [opts {:key :block/change
|
||||
:data blocks}]
|
||||
(db/refresh repo opts))))))
|
||||
(db/refresh! repo opts))))))
|
||||
|
||||
(defn- block-property-aux!
|
||||
[block-id key value]
|
||||
|
@ -799,21 +799,21 @@
|
|||
(outliner-core/save-node block)
|
||||
(let [opts {:key :block/change
|
||||
:data [block]}]
|
||||
(db/refresh repo opts)))))))
|
||||
(db/refresh! repo opts)))))))
|
||||
|
||||
(defn remove-block-property!
|
||||
[block-id key]
|
||||
(block-property-aux! block-id key nil)
|
||||
(db/refresh (state/get-current-repo)
|
||||
{:key :block/change
|
||||
:data [(db/pull [:block/uuid block-id])]}))
|
||||
(db/refresh! (state/get-current-repo)
|
||||
{:key :block/change
|
||||
:data [(db/pull [:block/uuid block-id])]}))
|
||||
|
||||
(defn set-block-property!
|
||||
[block-id key value]
|
||||
(block-property-aux! block-id key value)
|
||||
(db/refresh (state/get-current-repo)
|
||||
{:key :block/change
|
||||
:data [(db/pull [:block/uuid block-id])]}))
|
||||
(db/refresh! (state/get-current-repo)
|
||||
{:key :block/change
|
||||
:data [(db/pull [:block/uuid block-id])]}))
|
||||
|
||||
(defn set-block-timestamp!
|
||||
[block-id key value]
|
||||
|
@ -1573,7 +1573,7 @@
|
|||
(when-let [repo (state/get-current-repo)]
|
||||
(let [opts {:key :block/change
|
||||
:data [block]}]
|
||||
(db/refresh repo opts)))))))
|
||||
(db/refresh! repo opts)))))))
|
||||
|
||||
(defn expand!
|
||||
[]
|
||||
|
@ -1618,7 +1618,7 @@
|
|||
(outliner-core/indent-outdent-nodes top-level-nodes (= direction :right))
|
||||
(let [opts {:key :block/change
|
||||
:data blocks}]
|
||||
(db/refresh repo opts)
|
||||
(db/refresh! repo opts)
|
||||
(let [blocks (doall
|
||||
(map
|
||||
(fn [block]
|
||||
|
@ -1824,7 +1824,7 @@
|
|||
(let [parent-node (tree/-get-parent node)]
|
||||
(outliner-core/move-subtree node parent-node true)))
|
||||
(let [repo (state/get-current-repo)]
|
||||
(db/refresh repo {:key :block/change :data [(:data node)]}))
|
||||
(db/refresh! repo {:key :block/change :data [(:data node)]}))
|
||||
(state/set-editor-op! nil)))))
|
||||
|
||||
(defn- last-top-level-child?
|
||||
|
@ -2076,8 +2076,8 @@
|
|||
(outliner-core/move-subtree current-node target-node true))
|
||||
(outliner-core/move-subtree current-node left false))
|
||||
(let [repo (state/get-current-repo)]
|
||||
(db/refresh repo
|
||||
{:key :block/change :data [(:data current-node)]}))))))
|
||||
(db/refresh! repo
|
||||
{:key :block/change :data [(:data current-node)]}))))))
|
||||
(state/set-editor-op! nil)))))
|
||||
|
||||
(defn outdent-on-shift-tab
|
||||
|
@ -2098,8 +2098,8 @@
|
|||
(let [parent (tree/-get-parent current-node)]
|
||||
(outliner-core/move-subtree current-node parent true))
|
||||
(let [repo (state/get-current-repo)]
|
||||
(db/refresh repo
|
||||
{:key :block/change :data [(:data current-node)]}))))
|
||||
(db/refresh! repo
|
||||
{:key :block/change :data [(:data current-node)]}))))
|
||||
(state/set-editor-op! nil)))))
|
||||
|
||||
(defn keydown-tab-handler
|
||||
|
@ -2306,7 +2306,7 @@
|
|||
:block/format)))))))))))
|
||||
_ (outliner-core/insert-nodes metadata-replaced-copied-blocks target-block sibling?)
|
||||
new-blocks (db/pull-many repo '[*] (map (fn [id] [:block/uuid id]) @new-block-uuids))]
|
||||
(db/refresh repo {:key :block/insert :data new-blocks})
|
||||
(db/refresh! repo {:key :block/insert :data new-blocks})
|
||||
(util/stop e)))))
|
||||
|
||||
(defn editor-on-paste!
|
||||
|
|
|
@ -105,10 +105,10 @@
|
|||
db-report (d/transact! conn txs)]
|
||||
(do (pipelines/invoke-hooks db-report))))
|
||||
|
||||
(defn- refresh
|
||||
(defn- refresh!
|
||||
[opts]
|
||||
(let [repo (state/get-current-repo)]
|
||||
(db/refresh repo opts)))
|
||||
(db/refresh! repo opts)))
|
||||
|
||||
(defn undo
|
||||
[]
|
||||
|
@ -124,7 +124,7 @@
|
|||
(transact! new-txs)
|
||||
(let [blocks
|
||||
(map (fn [x] (get-by-id [:block/uuid (:block/uuid x)])) blocks)]
|
||||
(refresh {:key :block/change :data (vec blocks)}))
|
||||
(refresh! {:key :block/change :data (vec blocks)}))
|
||||
(assoc e
|
||||
:txs-op new-txs
|
||||
:editor-cursor editor-cursor)))))
|
||||
|
@ -136,7 +136,7 @@
|
|||
(push-undo e)
|
||||
(transact! new-txs)
|
||||
(let [blocks (map (fn [x] (get-by-id [:block/uuid (:block/uuid x)])) blocks)]
|
||||
(refresh {:key :block/change :data (vec blocks)}))
|
||||
(refresh! {:key :block/change :data (vec blocks)}))
|
||||
(assoc e :txs-op new-txs))))
|
||||
|
||||
(defn listen-outliner-operation
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
[clojure.zip :as zip]
|
||||
[frontend.modules.outliner.file :as outliner-file]
|
||||
[frontend.modules.outliner.datascript :as ds]
|
||||
[frontend.util :as util]
|
||||
[frontend.util :as util :refer-macros [profile]]
|
||||
[datascript.core :as d]))
|
||||
|
||||
(defrecord Block [data])
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
[frontend.modules.outliner.pipeline :as pipelines]
|
||||
[frontend.modules.editor.undo-redo :as undo-redo]
|
||||
[frontend.state :as state]
|
||||
[frontend.util :as util])))
|
||||
[frontend.util :as util :refer-macros [profile]])))
|
||||
|
||||
#?(:cljs
|
||||
(defn new-outliner-txs-state [] (atom [])))
|
||||
|
|
|
@ -15,12 +15,3 @@
|
|||
(util/react)
|
||||
(flatten)
|
||||
(seq)))
|
||||
|
||||
(defn update-block-state
|
||||
[repo node]
|
||||
;; {:pre [(tree/satisfied-inode? node)]}
|
||||
#_(when-let [parent (tree/-get-parent node)]
|
||||
(react/transact-react!
|
||||
repo
|
||||
[(:data parent)]
|
||||
{:key [:block/children (str (tree/-get-id parent))]})))
|
Loading…
Reference in New Issue