Make isItemViewable handle floating point error. #1029
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
I'm not sure there is an issue for this. I can create one if necessary.
While working on a react-native app, I noticed that some views would never initially appear as visible according to
onViewableItemsChanged
. From debugging, I isolated the issue toViewabilityHelper
'sisItemViewable
. https://github.com/Shopify/flash-list/blob/main/src/viewability/ViewabilityHelper.ts#L141I'm not able to share a video or repro, I'm pretty certain that what I'm seeing is minute differences between
pixelsVisible
anditemSize
. For an example view, I getpixelsVisible = 36.761904761904816
anditemSize = 36.76190476190476
. I feel like that these differences are likely caused by floating-errors from prior calculations.Reviewers’ hat-rack 🎩
if (pixelsVisible - itemSize >= -0.001)
? i.e. allowpixelsVisible
to be greater thanitemSize
in general?0.001
a suitable arbitrary number?Screenshots or videos (if needed)
Unfortunately I cannot provide this easily. :(
Checklist