fix: query result display

pull/10933/head
Tienson Qin 2024-02-03 08:51:23 +08:00
parent 9028976100
commit b8b0107123
2 changed files with 18 additions and 4 deletions

View File

@ -3151,7 +3151,7 @@
*navigating-block (get state ::navigating-block) *navigating-block (get state ::navigating-block)
navigating-block (rum/react *navigating-block) navigating-block (rum/react *navigating-block)
navigated? (and (not= (:block/uuid block) navigating-block) navigating-block) navigated? (and (not= (:block/uuid block) navigating-block) navigating-block)
_ (state/sub-async-query-loading (:block/uuid block))] _ (when (:block/uuid block) (state/sub-async-query-loading (:block/uuid block)))]
(when (:block/uuid block) (when (:block/uuid block)
(let [[original-block block] (build-block config block {:navigating-block navigating-block :navigated? navigated?}) (let [[original-block block] (build-block config block {:navigating-block navigating-block :navigated? navigated?})
config' (if original-block config' (if original-block

View File

@ -2,7 +2,9 @@
"Async util helper" "Async util helper"
(:require [frontend.state :as state] (:require [frontend.state :as state]
[promesa.core :as p] [promesa.core :as p]
[clojure.edn :as edn])) [clojure.edn :as edn]
[frontend.db.conn :as db-conn]
[datascript.core :as d]))
(defn <q (defn <q
[graph & inputs] [graph & inputs]
@ -10,7 +12,16 @@
(when-let [^Object sqlite @state/*db-worker] (when-let [^Object sqlite @state/*db-worker]
(p/let [result (.q sqlite graph (pr-str inputs))] (p/let [result (.q sqlite graph (pr-str inputs))]
(when result (when result
(edn/read-string result))))) (let [result' (edn/read-string result)]
(when (seq result')
(when-let [conn (db-conn/get-db graph false)]
(let [tx-data (if (and (coll? result')
(coll? (first result'))
(not (map? (first result'))))
(apply concat result')
result')]
(d/transact! conn tx-data))))
result')))))
(defn <pull (defn <pull
([graph id] ([graph id]
@ -19,7 +30,10 @@
(when-let [^Object sqlite @state/*db-worker] (when-let [^Object sqlite @state/*db-worker]
(p/let [result (.pull sqlite graph (pr-str selector) (pr-str id))] (p/let [result (.pull sqlite graph (pr-str selector) (pr-str id))]
(when result (when result
(edn/read-string result)))))) (let [result' (edn/read-string result)]
(when-let [conn (db-conn/get-db graph false)]
(d/transact! conn [result']))
result'))))))
(comment (comment
(defn <pull-many (defn <pull-many