-
Notifications
You must be signed in to change notification settings - Fork 726
Use VirtualList for commits and file list #11382
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
@PavelLaptev could you let me know what you think of this? output.mp4 |
|
From a user experience perspective, this appears to be a regression.
If we need to make other branches in the stack always visible, we can solve that problem in other ways. cc @krlvi Screen.Recording.2025-11-27.at.11.29.03.mov |
07ad9e5 to
1ca4682
Compare
1ca4682 to
7867371
Compare
|
Just in short, the primary goal of this isn't to have branches always visible, but rather prevent against UI slowness if your branch happens to contain lots of commits, or your commit contains lots of changed files. What do you think we can do? |
Replace manual iteration with VirtualList in BranchCommitList and FileList to improve performance with large lists. Create ConfigurableVirtualList wrapper that applies user's scrollbar visibility preference. Implement tree flattening for virtual scrolling in tree mode with expand/collapse support. - Add ConfigurableVirtualList component wrapping VirtualList with user settings - Add flattenTree() to convert tree structure to flat list for virtual rendering - Add max-height constraint to commit list container - Remove transition from CommitRow to prevent scroll performance issues
I don't have much to add, @PavelLaptev but this seems like a sound judgement re: scroll within a scroll and the other UX aspects |
|
Throwing a crazy idea: is "show more" thingie appropriate if there are more than say... 50 commits or something? No idea if this is right at all |
7867371 to
34eae35
Compare
Let’s load commits within the lane scroll, rather than within each branch. This approach would be ideal. |
|
@mtsgrd, let’s keep the “scroll to bottom” button only for the chat. It doesn’t make sense to have it in other places where the list isn’t fully loaded.
|
d53a782 to
34eae35
Compare
|
Another important issue is the inability to drag and drop files and commits. Screen.Recording.2025-11-27.at.12.54.22.mov |
Let me see what I can do! |
That could work. It’s better than scrolling. However, let’s not implement it within this PR. Instead, let’s make design drafts first. |
If you’re okay with not rushing virtual lists within lanes, we can try an idea that @krlvi added (if it's easier to implement). Then, we can make another PR. |
|
(converted to draft as I somehow felt the urge to press this juice green merge button😅. On the topic: I am very excited for this!) |

Replace manual iteration with VirtualList in BranchCommitList and
FileList to improve performance with large lists. Create
ConfigurableVirtualList wrapper that applies user's scrollbar
visibility preference. Implement tree flattening for virtual scrolling
in tree mode with expand/collapse support.
settings
rendering