mini spec for fixing this (cc @lucas):
so the client app renders lists of spaces with the SpaceList
component. Because these lists can get pretty long though (which can freeze safari for a couple seconds when initially rendering), I try and only render the content of each space li
when it’s viewable. this happens in SpaceList itemIsVisible()
, but the way I calculate things is a little incorrect and can lead to jumpy scrolling or rendering bugs in long lists:
the thing that makes this optimization really challenging is that the list items vary in height.
Ideally I want the user to be able to always see the correct scrollbar length, but if we choose to go with dynamically inserting things into the list as you scroll and the scrollbar needs to dynamically adjust that may also be okay