diff --git a/package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx b/package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx index 9941168f7..8978ff5fb 100644 --- a/package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +++ b/package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx @@ -85,6 +85,10 @@ export const AnimatedGalleryVideo = React.memo( if (videoRef.current) { videoPlayer.initPlayer({ playerRef: videoRef.current }); } + + return () => { + videoPlayer.playerRef = null; + }; }, [videoPlayer]); const { isPlaying } = useStateStore(videoPlayer.state, videoPlayerSelector); diff --git a/package/src/components/ImageGallery/components/ImageGalleryHeader.tsx b/package/src/components/ImageGallery/components/ImageGalleryHeader.tsx index e49549009..f077674d6 100644 --- a/package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +++ b/package/src/components/ImageGallery/components/ImageGalleryHeader.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useState } from 'react'; +import React, { useEffect, useMemo, useState } from 'react'; import { Pressable, StyleSheet, Text, View, ViewStyle } from 'react-native'; @@ -92,9 +92,14 @@ export const ImageGalleryHeader = (props: Props) => { const hideOverlay = () => { setOverlay('none'); - imageGalleryStateStore.clear(); }; + useEffect(() => { + return () => { + imageGalleryStateStore.clear(); + }; + }, [imageGalleryStateStore]); + return ( setHeight(event.nativeEvent.layout.height)} diff --git a/package/src/components/ImageGallery/hooks/useImageGalleryGestures.tsx b/package/src/components/ImageGallery/hooks/useImageGalleryGestures.tsx index 733b3be69..b7a400bec 100644 --- a/package/src/components/ImageGallery/hooks/useImageGalleryGestures.tsx +++ b/package/src/components/ImageGallery/hooks/useImageGalleryGestures.tsx @@ -159,7 +159,6 @@ export const useImageGalleryGestures = ({ const assetsLength = imageGalleryStateStore.assets.length; const clearImageGallery = () => { - runOnJS(imageGalleryStateStore.clear)(); runOnJS(setOverlay)('none'); }; diff --git a/package/src/state-store/image-gallery-state-store.ts b/package/src/state-store/image-gallery-state-store.ts index 1ba675d4f..997892f1d 100644 --- a/package/src/state-store/image-gallery-state-store.ts +++ b/package/src/state-store/image-gallery-state-store.ts @@ -219,7 +219,7 @@ export class ImageGalleryStateStore { }; clear = () => { - this.state.partialNext(INITIAL_STATE); this.videoPlayerPool.clear(); + this.state.partialNext(INITIAL_STATE); }; }