Skip to content

Commit c1a7d5a

Browse files
committed
fix: Setting showThumbnail false breaks #703
1 parent 14e8f96 commit c1a7d5a

File tree

2 files changed

+23
-7
lines changed

2 files changed

+23
-7
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
node_modules
22
npm-debug.log
33
.DS_Store
4-
4+
.notes
55
.idea
66

77
build/

src/ImageGallery.js

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)