mirror of https://github.com/logseq/logseq
fix: don't hide lazy components if they're above the current scroll top
parent
3c31448106
commit
d07f8eca8a
|
@ -926,16 +926,10 @@
|
|||
(rum/defc lazy-visible
|
||||
[content-fn]
|
||||
(let [[hasBeenSeen setHasBeenSeen] (rum/use-state false)
|
||||
inViewState (useInView {:rootMargin "0px 0px 0px 0px"
|
||||
:on-change (fn [v] (when v (setHasBeenSeen v)))})]
|
||||
(rum/use-effect!
|
||||
#(when (gobj/get inViewState "inView") (setHasBeenSeen true))
|
||||
[(gobj/get inViewState "inView")])
|
||||
(pprint {:ref (gobj/get inViewState "ref")}) ;; TODO: Remove pprints
|
||||
(pprint {:inView (gobj/get inViewState "inView")})
|
||||
(pprint {:hasBeenSeen hasBeenSeen})
|
||||
(lazy-visible-inner
|
||||
hasBeenSeen
|
||||
content-fn
|
||||
(gobj/get inViewState "ref"))
|
||||
))
|
||||
inViewState (useInView #js {:rootMargin "100px"
|
||||
:onChange (fn [v entry]
|
||||
(let [self-top (.-top (.-boundingClientRect entry))
|
||||
v (if v v (if (> self-top 0) false true))]
|
||||
(setHasBeenSeen v)))})
|
||||
ref (.-ref inViewState)]
|
||||
(lazy-visible-inner hasBeenSeen content-fn ref)))
|
||||
|
|
Loading…
Reference in New Issue