react-swipeable-views
react-swipeable-views copied to clipboard
checkIndexBounds off by 1 validation
checkIndexBounds is too lenient and allows setting indexes from 0 .. count inclusive, whereas really the only valid values are 0 .. (count-1).
https://github.com/oliviertassinari/react-swipeable-views/blob/a12dd90f63372162bd461f293be1c240fe872ef0/packages/react-swipeable-views-core/src/checkIndexBounds.js#L9-L12
- [x] I have searched the issues of this repository and believe that this is not a duplicate.
Current Behavior
The warning is only produced after setting index to children.length + 1:
Here is an example warning I see when I set index = 4 having only 3 children:
Warning: react-swipeable-view: the new index: 4 is out of bounds: [0-3].
Expected Behavior
Setting index to exactly children.length should already produce a warning. The warning message should also show the correct range of values.
E.g. setting index to 3 should produce this warning when there are only 3 children:
Warning: react-swipeable-view: the new index: 3 is out of bounds: [0-2].
Steps to Reproduce
This should produce a warning, but it doesn't:
<SwipeableViews index={3}>
<div>A</div>
<div>B</div>
<div>C</div>
</SwipeableViews>
Context
This is a minor dev nuisance, where the lenience of react-swipable-views is potentially allowing a dev to not detect code defects.
Your Environment
| Tech | Version |
|---|---|
| react-swipeable-views | 0.14.0 |
| React | 17.0.2 |
| platform | Web |