mirror of
https://github.com/penpot/penpot.git
synced 2026-07-22 05:57:56 +00:00
🐛 Fix sidebar scroll to shape (#10600)
This commit is contained in:
parent
bcf77767b2
commit
8ac2e8c8a8
@ -490,8 +490,7 @@
|
||||
selected-child-render-idx
|
||||
(when (> total default-chunk-size)
|
||||
(some (fn [sel-id]
|
||||
(let [idx (.indexOf shapes sel-id)]
|
||||
(when (>= idx 0) idx)))
|
||||
(d/index-of-pred shapes #(= (get % :id) sel-id)))
|
||||
selected))
|
||||
|
||||
;; Load at least enough to include the selected child plus extra
|
||||
@ -509,12 +508,7 @@
|
||||
|
||||
(reset! children-count* new-count))
|
||||
|
||||
(reset! children-count* 0))
|
||||
|
||||
(fn []
|
||||
(when-let [obs (mf/ref-val observer-ref)]
|
||||
(.disconnect obs)
|
||||
(mf/set-ref-val! obs nil)))))
|
||||
(reset! children-count* 0))))
|
||||
|
||||
;; Re-observe sentinel whenever children-count changes (sentinel moves)
|
||||
;; and (shapes item) to reconnect observer after shape changes
|
||||
@ -524,11 +518,6 @@
|
||||
scroll-node (dom/get-parent-with-data name-node "scroll-container")
|
||||
lazy-node (mf/ref-val lazy-ref)]
|
||||
|
||||
;; Disconnect previous observer
|
||||
(when-let [obs (mf/ref-val observer-ref)]
|
||||
(.disconnect obs)
|
||||
(mf/set-ref-val! observer-ref nil))
|
||||
|
||||
;; Setup new observer if there are more children to load
|
||||
(when (and ^boolean is-expanded
|
||||
^boolean (< children-count total)
|
||||
@ -542,7 +531,13 @@
|
||||
(reset! children-count* next-count))))
|
||||
observer (js/IntersectionObserver. cb #js {:root scroll-node})]
|
||||
(.observe observer lazy-node)
|
||||
(mf/set-ref-val! observer-ref observer)))))
|
||||
(mf/set-ref-val! observer-ref observer)))
|
||||
|
||||
;; Disconnect on deps change or unmount; this effect owns the observer
|
||||
(fn []
|
||||
(when-let [obs (mf/ref-val observer-ref)]
|
||||
(.disconnect obs)
|
||||
(mf/set-ref-val! observer-ref nil)))))
|
||||
|
||||
[:> layer-item-inner*
|
||||
{:ref dref
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user