@@ -176,7 +176,7 @@ export const slideHandler = spec => {
176176 finalLeft ;
177177 let state = { } ,
178178 nextState = { } ;
179- const targetSlide = infinite ? index : clamp ( index , 0 , slideCount ) ;
179+ const targetSlide = infinite ? index : clamp ( index , 0 , slideCount - 1 ) ;
180180 if ( fade ) {
181181 if ( ! infinite && ( index < 0 || index >= slideCount ) ) return { } ;
182182 if ( index < 0 ) {
@@ -426,10 +426,12 @@ export const swipeEnd = (e, spec) => {
426426 touchThreshold,
427427 verticalSwiping,
428428 listHeight,
429- currentSlide,
430429 swipeToSlide,
431430 scrolling,
432- onSwipe
431+ onSwipe,
432+ targetSlide,
433+ currentSlide,
434+ infinite
433435 } = spec ;
434436 if ( ! dragging ) {
435437 if ( swipe ) e . preventDefault ( ) ;
@@ -461,21 +463,22 @@ export const swipeEnd = (e, spec) => {
461463 onSwipe ( swipeDirection ) ;
462464 }
463465 let slideCount , newSlide ;
466+ let activeSlide = infinite ? currentSlide : targetSlide ;
464467 switch ( swipeDirection ) {
465468 case "left" :
466469 case "up" :
467- newSlide = currentSlide + getSlideCount ( spec ) ;
470+ newSlide = activeSlide + getSlideCount ( spec ) ;
468471 slideCount = swipeToSlide ? checkNavigable ( spec , newSlide ) : newSlide ;
469472 state [ "currentDirection" ] = 0 ;
470473 break ;
471474 case "right" :
472475 case "down" :
473- newSlide = currentSlide - getSlideCount ( spec ) ;
476+ newSlide = activeSlide - getSlideCount ( spec ) ;
474477 slideCount = swipeToSlide ? checkNavigable ( spec , newSlide ) : newSlide ;
475478 state [ "currentDirection" ] = 1 ;
476479 break ;
477480 default :
478- slideCount = currentSlide ;
481+ slideCount = activeSlide ;
479482 }
480483 state [ "triggerSlideHandler" ] = slideCount ;
481484 } else {
0 commit comments