fix(pdf): missing the initial ref highlight block sometimes

This commit is contained in:
charlie
2023-10-10 21:15:05 +08:00
committed by Andelf
parent abb0596ed2
commit 1c1a07db4e
2 changed files with 49 additions and 43 deletions

View File

@@ -848,7 +848,6 @@
(confirm-fn password)))}
"Submit"]]]]))
(rum/defc ^:large-vars/data-var pdf-loader
[{:keys [url hls-file identity filename] :as pdf-current}]
(let [*doc-ref (rum/use-ref nil)
@@ -861,6 +860,13 @@
set-hls-extra! (fn [extra]
(set-hls-state! #(merge % {:extra extra})))]
;; current pdf effects
(rum/use-effect!
(fn []
(when pdf-current
(pdf-assets/ensure-ref-page! pdf-current)))
[pdf-current])
;; load highlights
(rum/use-effect!
(fn []
@@ -888,22 +894,23 @@
;; cache highlights
(let [persist-hls-data!
(rum/use-callback
(util/debounce
4000 (fn [latest-hls extra]
(pdf-assets/persist-hls-data$
pdf-current latest-hls extra))) [pdf-current])]
(util/debounce
4000 (fn [latest-hls extra]
(pdf-assets/persist-hls-data$
pdf-current latest-hls extra))) [pdf-current])]
(rum/use-effect!
(fn []
(when (= :completed (:status loader-state))
(p/catch
(when-not (:error hls-state)
(p/do! (persist-hls-data! (:latest-hls hls-state) (:extra hls-state))))
(fn []
(when (= :completed (:status loader-state))
(p/catch
(when-not (:error hls-state)
(p/do! (persist-hls-data! (:latest-hls hls-state) (:extra hls-state))))
;; write hls file error
(fn [e]
(js/console.error "[write hls error]" e)))))
;; write hls file error
(fn [e]
(js/console.error "[write hls error]" e)))))
[(:latest-hls hls-state) (:extra hls-state)]))
[(:latest-hls hls-state) (:extra hls-state)]))
;; load document
(rum/use-effect!