-
Notifications
You must be signed in to change notification settings - Fork 85
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
fix: preserve large items when new items are added #7987
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
packages/component-base/test/virtualizer-variable-row-height.test.js
Outdated
Show resolved
Hide resolved
|
sissbruecker
approved these changes
Oct 18, 2024
@ugur-vaadin Should this be cherry-picked? |
Yes, I missed the target tags for the PR. Will do the cherry-picking today. |
ugur-vaadin
added a commit
that referenced
this pull request
Oct 21, 2024
* fix: preserve large items when new items are added * fix: fix refactor typo * test: extract initialization with large item count
ugur-vaadin
added a commit
that referenced
this pull request
Oct 21, 2024
* fix: preserve large items when new items are added * fix: fix refactor typo * test: extract initialization with large item count
This was referenced Oct 21, 2024
ugur-vaadin
added a commit
that referenced
this pull request
Oct 21, 2024
8 tasks
ugur-vaadin
added a commit
that referenced
this pull request
Oct 21, 2024
ugur-vaadin
added a commit
that referenced
this pull request
Oct 21, 2024
ugur-vaadin
added a commit
that referenced
this pull request
Oct 21, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The iron list core uses the optimal physical size (
_optPhysicalSize
) when determining whether to increase the item pool. For the cases where some items are much larger than the average, the iron list core might not increase item pool. This can lead to the large item not being rendered.This PR overrides the getter for
_optPhysicalSize
from iron list core and adds an item height buffer whenever necessary.The calculation for the extra item buffer is based on the calculation of the regular buffer, which is
_viewportHeight * (_maxPages - 1)
._maxPages
is 1.3 in our case. So there is a buffer with a height of_viewportHeight * 0.15
each for top and bottom. If the item heights are varied, then the extra buffer ofmaxItemHeight - _viewportHeight * 0.15
is added to the optimal physical size. This makes sure that there is always enough space so that the iron list creates more items in the pool._optPhysicalSize
is private and only used when the virtualizer needs determine whether to add more items to the pool. Therefore this should not cause any changes in other calculations.Note:
Playing with the value of
_maxPages
can hide the issue for certain combinations of_viewportHeight
andmaxItemHeight
, however it will not completely fix it.Fixes #7986
Type of change
Checklist