fix: lazy loading shakes (#9139)

* fix: lazy loading shakes

Also, enable lazy loading on mobile

* enhance(perf): lazy load deadlines and scheduled

* enhance(perf): clean up queries when components are invisible

For queries including both ::ref and ::block.
This commit is contained in:
Tienson Qin
2023-04-24 18:29:19 +08:00
committed by GitHub
parent ab0c1c1860
commit f8178bcd9b
7 changed files with 54 additions and 39 deletions

View File

@@ -51,8 +51,12 @@
(defonce query-state (atom {}))
;; Current dynamic component
(def ^:dynamic *query-component*)
;; Which reactive queries are triggered by the current component
(def ^:dynamic *reactive-queries*)
;; component -> query-key
(defonce query-components (atom {}))
@@ -156,11 +160,14 @@
transform-fn identity}} query & inputs]
{:pre [(s/valid? ::react-query-keys k)]}
(let [kv? (and (vector? k) (= :kv (first k)))
origin-key k
k (vec (cons repo k))]
(when-let [db (conn/get-db repo)]
(let [result-atom (get-query-cached-result k)]
(when-let [component *query-component*]
(add-query-component! k component))
(when-let [queries *reactive-queries*]
(swap! queries conj origin-key))
(if (and use-cache? result-atom)
result-atom
(let [{:keys [result time]} (util/with-time