@@ -150,9 +150,20 @@ class ImageGallery extends React.Component {
150150 this . initThumbnailWrapperResizeObserver ( this . thumbnailsWrapper ) ;
151151 }
152152
153+ // re-inititalize if thumbnails are shown again
154+ if ( showThumbnailsChanged && showThumbnails ) {
155+ this . initThumbnailWrapperResizeObserver ( this . thumbnailsWrapper ) ;
156+ }
157+
158+ // remove thumbnails resize observer if not showing thumbnails
159+ if ( showThumbnailsChanged && ! showThumbnails ) {
160+ this . removeThumbnailsResizeObserver ( ) ;
161+ }
162+
153163 if ( itemsSizeChanged || showThumbnailsChanged ) {
154164 this . handleResize ( ) ;
155165 }
166+
156167 if ( prevState . currentIndex !== currentIndex ) {
157168 this . slideThumbnailBar ( ) ;
158169 }
@@ -965,18 +976,21 @@ class ImageGallery extends React.Component {
965976 }
966977 }
967978
979+ removeThumbnailsResizeObserver ( ) {
980+ if ( this . resizeThumbnailWrapperObserver
981+ && this . thumbnailsWrapper && this . thumbnailsWrapper . current ) {
982+ this . resizeThumbnailWrapperObserver . unobserve ( this . thumbnailsWrapper . current ) ;
983+ this . resizeThumbnailWrapperObserver = null ;
984+ }
985+ }
986+
968987 removeResizeObserver ( ) {
969988 if ( this . resizeSlideWrapperObserver
970989 && this . imageGallerySlideWrapper && this . imageGallerySlideWrapper . current ) {
971990 this . resizeSlideWrapperObserver . unobserve ( this . imageGallerySlideWrapper . current ) ;
972991 this . resizeSlideWrapperObserver = null ;
973992 }
974-
975- if ( this . resizeThumbnailWrapperObserver
976- && this . thumbnailsWrapper && this . thumbnailsWrapper . current ) {
977- this . resizeThumbnailWrapperObserver . unobserve ( this . thumbnailsWrapper . current ) ;
978- this . resizeThumbnailWrapperObserver = null ;
979- }
993+ this . removeThumbnailsResizeObserver ( ) ;
980994 }
981995
982996 handleResize ( ) {
@@ -1002,6 +1016,7 @@ class ImageGallery extends React.Component {
10021016 }
10031017
10041018 initSlideWrapperResizeObserver ( element ) {
1019+ if ( element && ! element . current ) return ;
10051020 // keeps track of gallery height changes for vertical thumbnail height
10061021 this . resizeSlideWrapperObserver = new ResizeObserver ( debounce ( ( entries ) => {
10071022 if ( ! entries ) return ;
@@ -1013,6 +1028,7 @@ class ImageGallery extends React.Component {
10131028 }
10141029
10151030 initThumbnailWrapperResizeObserver ( element ) {
1031+ if ( element && ! element . current ) return ; // thumbnails are not always available
10161032 this . resizeThumbnailWrapperObserver = new ResizeObserver ( debounce ( ( entries ) => {
10171033 if ( ! entries ) return ;
10181034 entries . forEach ( ( entry ) => {
0 commit comments