Refactor page loading

This commit is contained in:
Tienson Qin
2022-03-24 22:21:31 +08:00
parent b5576c8a22
commit ee897c244b
5 changed files with 82 additions and 22 deletions

View File

@@ -2,13 +2,16 @@
(:require [clojure.set :as set]
[clojure.walk :as walk]
[frontend.db :as db]
[frontend.db.model :as db-model]
[frontend.db.react :as db-react]
[frontend.state :as state]
[frontend.format.block :as block]))
;; lazy loading
(def initial-blocks-length 200)
(def initial-blocks-length 100)
(def step-loading-blocks 50)
(def step-loading-blocks 30)
;; Fns
@@ -95,3 +98,14 @@
(defn get-deadline-ast
[block]
(get-timestamp block "Deadline"))
(defn load-more!
[block? db-id start-id]
(let [repo (state/get-current-repo)
query-k (if block?
[repo :frontend.db.react/block-and-children (:block/uuid (db/pull db-id))]
[repo :frontend.db.react/page-blocks db-id])
more-data (db-model/get-paginated-blocks start-id {:limit step-loading-blocks})]
(db-react/swap-new-result! query-k
(fn [result]
(concat result more-data)))))