diff --git a/ts/components/conversation/media-gallery/MediaGallery.tsx b/ts/components/conversation/media-gallery/MediaGallery.tsx index 95892b68b0..00a8d93655 100644 --- a/ts/components/conversation/media-gallery/MediaGallery.tsx +++ b/ts/components/conversation/media-gallery/MediaGallery.tsx @@ -160,12 +160,24 @@ export function MediaGallery({ }, []); useEffect(() => { - if (media.length > 0 || documents.length > 0) { + if ( + media.length > 0 || + documents.length > 0 || + haveOldestDocument || + haveOldestMedia + ) { return; } initialLoad(conversationId); loadingRef.current = true; - }, [conversationId, initialLoad, media, documents]); + }, [ + conversationId, + haveOldestDocument, + haveOldestMedia, + initialLoad, + media, + documents, + ]); const previousLoading = usePrevious(loading, loading); if (previousLoading && !loading) { diff --git a/ts/state/ducks/mediaGallery.ts b/ts/state/ducks/mediaGallery.ts index 6066099464..dd3553e260 100644 --- a/ts/state/ducks/mediaGallery.ts +++ b/ts/state/ducks/mediaGallery.ts @@ -410,12 +410,14 @@ export function reducer( } if (action.type === INITIAL_LOAD) { + const { payload } = action; + return { ...state, loading: false, - ...action.payload, - haveOldestDocument: false, - haveOldestMedia: false, + ...payload, + haveOldestMedia: payload.media.length === 0, + haveOldestDocument: payload.documents.length === 0, }; }