Open davidnx opened 3 years ago
checkIndexBounds is too lenient and allows setting indexes from 0 .. count inclusive, whereas really the only valid values are 0 .. (count-1).
checkIndexBounds
0 .. count
0 .. (count-1)
https://github.com/oliviertassinari/react-swipeable-views/blob/a12dd90f63372162bd461f293be1c240fe872ef0/packages/react-swipeable-views-core/src/checkIndexBounds.js#L9-L12
The warning is only produced after setting index to children.length + 1:
index
children.length + 1
Here is an example warning I see when I set index = 4 having only 3 children:
index = 4
Warning: react-swipeable-view: the new index: 4 is out of bounds: [0-3].
Setting index to exactly children.length should already produce a warning. The warning message should also show the correct range of values.
children.length
E.g. setting index to 3 should produce this warning when there are only 3 children:
3
Warning: react-swipeable-view: the new index: 3 is out of bounds: [0-2].
This should produce a warning, but it doesn't:
<SwipeableViews index={3}> <div>A</div> <div>B</div> <div>C</div> </SwipeableViews>
This is a minor dev nuisance, where the lenience of react-swipable-views is potentially allowing a dev to not detect code defects.
checkIndexBounds
is too lenient and allows setting indexes from0 .. count
inclusive, whereas really the only valid values are0 .. (count-1)
.https://github.com/oliviertassinari/react-swipeable-views/blob/a12dd90f63372162bd461f293be1c240fe872ef0/packages/react-swipeable-views-core/src/checkIndexBounds.js#L9-L12
Current Behavior
The warning is only produced after setting
index
tochildren.length + 1
:Here is an example warning I see when I set
index = 4
having only 3 children:Expected Behavior
Setting
index
to exactlychildren.length
should already produce a warning. The warning message should also show the correct range of values.E.g. setting
index
to3
should produce this warning when there are only 3 children:Steps to Reproduce
This should produce a warning, but it doesn't:
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