@@ -53,12 +53,19 @@ function useArrowKeys ({ moveLeft, moveRight }) {
53
53
} , [ onKeyDown ] )
54
54
}
55
55
56
- function Carousel ( { close, mediaArr, src } ) {
56
+ function Carousel ( { close, mediaArr, src, setOptions } ) {
57
57
const [ index , setIndex ] = useState ( mediaArr . findIndex ( ( [ key ] ) => key === src ) )
58
58
const [ currentSrc , canGoLeft , canGoRight ] = useMemo ( ( ) => {
59
59
return [ mediaArr [ index ] [ 0 ] , index > 0 , index < mediaArr . length - 1 ]
60
60
} , [ mediaArr , index ] )
61
61
62
+ useEffect ( ( ) => {
63
+ if ( index === - 1 ) return
64
+ setOptions ( {
65
+ overflow : < CarouselOverflow { ...mediaArr [ index ] [ 1 ] } />
66
+ } )
67
+ } , [ index , mediaArr , setOptions ] )
68
+
62
69
const moveLeft = useCallback ( ( ) => {
63
70
setIndex ( i => Math . max ( 0 , i - 1 ) )
64
71
} , [ setIndex ] )
@@ -108,8 +115,8 @@ export function CarouselProvider ({ children }) {
108
115
const showModal = useShowModal ( )
109
116
110
117
const showCarousel = useCallback ( ( { src } ) => {
111
- showModal ( ( close ) => {
112
- return < Carousel close = { close } mediaArr = { Array . from ( media . current . entries ( ) ) } src = { src } />
118
+ showModal ( ( close , setOptions ) => {
119
+ return < Carousel close = { close } mediaArr = { Array . from ( media . current . entries ( ) ) } src = { src } setOptions = { setOptions } />
113
120
} , {
114
121
fullScreen : true ,
115
122
overflow : < CarouselOverflow { ...media . current . get ( src ) } />
0 commit comments