mirror of https://github.com/logseq/logseq
fix: reactive custom query
parent
150f40cbd7
commit
d6f17ac7f3
|
@ -129,48 +129,50 @@
|
|||
{:keys [builder query view collapsed?] :as q}
|
||||
*result]
|
||||
(let [collapsed?' (:collapsed? config)
|
||||
result (when *result (query-result/get-query-result config q (rum/react *result)))
|
||||
result' (rum/react *result)]
|
||||
(when (seq result')
|
||||
(let [result (when *result (query-result/get-query-result config q result'))
|
||||
;; Args for displaying query header and results
|
||||
view-fn (if (keyword? view) (get-in (state/sub-config) [:query/views view]) view)
|
||||
view-f (and view-fn (sci/eval-string (pr-str view-fn)))
|
||||
page-list? (and (seq result) (some? (:block/name (first result))))
|
||||
opts {:query-error-atom *query-error
|
||||
:current-block current-block
|
||||
:table? table?
|
||||
:view-f view-f
|
||||
:page-list? page-list?
|
||||
:result result
|
||||
:group-by-page? (query-result/get-group-by-page q {:table? table?})}]
|
||||
(if (:custom-query? config)
|
||||
view-fn (if (keyword? view) (get-in (state/sub-config) [:query/views view]) view)
|
||||
view-f (and view-fn (sci/eval-string (pr-str view-fn)))
|
||||
page-list? (and (seq result) (some? (:block/name (first result))))
|
||||
opts {:query-error-atom *query-error
|
||||
:current-block current-block
|
||||
:table? table?
|
||||
:view-f view-f
|
||||
:page-list? page-list?
|
||||
:result result
|
||||
:group-by-page? (query-result/get-group-by-page q {:table? table?})}]
|
||||
(if (:custom-query? config)
|
||||
;; Don't display recursive results when query blocks are a query result
|
||||
[:code (if dsl-query? (str "Results for " (pr-str query)) "Advanced query results")]
|
||||
(when-not (and built-in-query? (empty? result))
|
||||
[:div.custom-query (get config :attr {})
|
||||
(when (and (not db-graph?) (not built-in-query?))
|
||||
(file-query/custom-query-header config
|
||||
q
|
||||
{:query-error-atom *query-error
|
||||
:current-block current-block
|
||||
:table? table?
|
||||
:view-f view-f
|
||||
:page-list? page-list?
|
||||
:result result
|
||||
:collapsed? collapsed?'}))
|
||||
[:code (if dsl-query? (str "Results for " (pr-str query)) "Advanced query results")]
|
||||
(when-not (and built-in-query? (empty? result))
|
||||
[:div.custom-query (get config :attr {})
|
||||
(when (and (not db-graph?) (not built-in-query?))
|
||||
(file-query/custom-query-header config
|
||||
q
|
||||
{:query-error-atom *query-error
|
||||
:current-block current-block
|
||||
:table? table?
|
||||
:view-f view-f
|
||||
:page-list? page-list?
|
||||
:result result
|
||||
:collapsed? collapsed?'}))
|
||||
|
||||
(when (and dsl-query? builder) builder)
|
||||
(when (and dsl-query? builder) builder)
|
||||
|
||||
(if built-in-query?
|
||||
[:div {:style {:margin-left 2}}
|
||||
(ui/foldable
|
||||
(query-title config (:title q) {:result-count (count result)})
|
||||
(fn []
|
||||
(custom-query-inner config q opts))
|
||||
{:default-collapsed? collapsed?
|
||||
:title-trigger? true})]
|
||||
(when-not (:table? config)
|
||||
[:div.bd
|
||||
(when-not collapsed?'
|
||||
(custom-query-inner config q opts))]))]))))
|
||||
(if built-in-query?
|
||||
[:div {:style {:margin-left 2}}
|
||||
(ui/foldable
|
||||
(query-title config (:title q) {:result-count (count result)})
|
||||
(fn []
|
||||
(custom-query-inner config q opts))
|
||||
{:default-collapsed? collapsed?
|
||||
:title-trigger? true})]
|
||||
(when-not (:table? config)
|
||||
[:div.bd
|
||||
(when-not collapsed?'
|
||||
(custom-query-inner config q opts))]))]))))))
|
||||
|
||||
(rum/defc trigger-custom-query
|
||||
[config q]
|
||||
|
@ -179,7 +181,7 @@
|
|||
(fn []
|
||||
(query-result/trigger-custom-query! config q (:*query-error config) set-result!))
|
||||
[q])
|
||||
(when (and (util/atom? result) (seq @result))
|
||||
(when (util/atom? result)
|
||||
(custom-query* config q result))))
|
||||
|
||||
(rum/defcs custom-query < rum/static
|
||||
|
|
|
@ -130,6 +130,7 @@
|
|||
(do
|
||||
(p/let [result p-or-value
|
||||
result' (transform-fn result)]
|
||||
(prn :debug :query-result result')
|
||||
(reset! result-atom result'))
|
||||
result-atom)
|
||||
|
||||
|
|
Loading…
Reference in New Issue