@@ -27,8 +27,12 @@ function ImagePreviewerLightbox(props) {
2727 } ) ;
2828
2929 const imagesLength = imageSrcList . length ;
30- const URL = imageSrcList [ imageIndex ] ;
30+ const [ currentImageIndex , setCurrentImageIndex ] = React . useState ( imageIndex || 0 ) ;
31+ const URL = imageSrcList [ currentImageIndex ] ;
3132
33+ React . useEffect ( ( ) => {
34+ setCurrentImageIndex ( imageIndex ) ;
35+ } , [ imageIndex ] ) ;
3236
3337 // Handle URL has special symbol %$
3438 let imageName = '' ;
@@ -49,17 +53,20 @@ function ImagePreviewerLightbox(props) {
4953 const imageTitleDOM = props . imageTitle || (
5054 < span className = "d-flex" >
5155 < span className = "text-truncate" > { imageName } </ span >
52- < span className = "flex-shrink-0 pl-1" > ({ imageIndex + 1 } /{ imagesLength } )</ span >
56+ < span className = "flex-shrink-0 pl-1" > ({ currentImageIndex + 1 } /{ imagesLength } )</ span >
5357 </ span >
5458 ) ;
5559
5660 return (
5761 < Lightbox
62+ imageItems = { imageSrcList }
63+ currentIndex = { currentImageIndex }
64+ setImageIndex = { index => setCurrentImageIndex ( index ) }
5865 wrapperClassName = { classnames ( 'dtable-ui-component' , className ) }
5966 imageTitle = { imageTitleDOM }
6067 mainSrc = { mainSrc }
61- nextSrc = { imageSrcList [ ( imageIndex + 1 ) % imagesLength ] }
62- prevSrc = { imageSrcList [ ( imageIndex + imagesLength - 1 ) % imagesLength ] }
68+ nextSrc = { imageSrcList [ ( currentImageIndex + 1 ) % imagesLength ] }
69+ prevSrc = { imageSrcList [ ( currentImageIndex + imagesLength - 1 ) % imagesLength ] }
6370 imagePadding = { 70 }
6471 viewOriginalImageLabel = { getLocale ( 'View_original_image' ) }
6572 enableRotate = { canRotateImage }
@@ -69,9 +76,14 @@ function ImagePreviewerLightbox(props) {
6976 onClickMoveUp = { props . moveToPrevRowImage }
7077 onClickMoveDown = { props . moveToNextRowImage }
7178 onViewOriginal = { props . onViewOriginal }
72- onRotateImage = { canRotateImage ? ( deg ) => { onRotateImage ( imageIndex , deg ) ; } : null }
73- onClickDelete = { ( ! readOnly && deleteImage ) ? ( ) => { deleteImage ( imageIndex , 'previewer' ) ; } : null }
79+ onRotateImage = { canRotateImage ? ( deg ) => { onRotateImage ( currentImageIndex , deg ) ; } : null }
80+ onClickDelete = { ( ! readOnly && deleteImage ) ? ( ) => { deleteImage ( currentImageIndex , 'previewer' ) ; } : null }
7481 onClickDownload = { downloadImage ? ( ) => { downloadImage ( URL ) ; } : null }
82+ zoomInTip = { getLocale ( 'Zoom_in' ) }
83+ zoomOutTip = { getLocale ( 'Zoom_out' ) }
84+ rotateTip = { getLocale ( 'Rotate_image' ) }
85+ deleteTip = { getLocale ( 'Delete_image' ) }
86+ downloadImageTip = { getLocale ( 'Download_image' ) }
7587 />
7688 ) ;
7789}
@@ -89,8 +101,6 @@ ImagePreviewerLightbox.propTypes = {
89101 moveToNextRowImage : PropTypes . func ,
90102 onViewOriginal : PropTypes . func ,
91103 closeImagePopup : PropTypes . func . isRequired ,
92- moveToPrevImage : PropTypes . func . isRequired ,
93- moveToNextImage : PropTypes . func . isRequired ,
94104 downloadImage : PropTypes . func ,
95105 deleteImage : PropTypes . func ,
96106 onRotateImage : PropTypes . func ,
0 commit comments