fix collectionDownloadInProgress not resetting properly on download completion

This commit is contained in:
Abhinav 2023-08-25 11:42:06 +05:30
parent 1ca5f40021
commit ba78b74e70
2 changed files with 25 additions and 8 deletions

View file

@ -1,6 +1,6 @@
import { Collection, CollectionSummaries } from 'types/collection';
import CollectionListBar from 'components/Collections/CollectionListBar';
import { useEffect, useMemo, useState } from 'react';
import { useCallback, useEffect, useMemo, useState } from 'react';
import AllCollections from 'components/Collections/AllCollections';
import CollectionInfoWithOptions from 'components/Collections/CollectionInfoWithOptions';
import { ALL_SECTION, COLLECTION_LIST_SORT_BY } from 'constants/collection';
@ -18,6 +18,8 @@ import { LS_KEYS } from 'utils/storage/localStorage';
import {
CollectionDownloadProgress,
CollectionDownloadProgressAttributes,
isCollectionDownloadCancelled,
isCollectionDownloadCompleted,
} from './CollectionDownloadProgress';
import { SetCollectionDownloadProgressAttributes } from 'types/gallery';
@ -96,12 +98,19 @@ export default function Collections(props: Iprops) {
});
};
const isCollectionDownloadInProgress = (collectionID: number) => {
const isCollectionDownloadInProgress = useCallback(
(collectionID: number) => {
const attributes = collectionDownloadProgressAttributesList.find(
(attr) => attr.collectionID === collectionID
);
return attributes && !attributes.canceller.signal.aborted;
};
return (
attributes &&
!isCollectionDownloadCancelled(attributes) &&
!isCollectionDownloadCompleted(attributes)
);
},
[collectionDownloadProgressAttributesList]
);
useEffect(() => {
if (isInSearchMode) {
@ -130,7 +139,12 @@ export default function Collections(props: Iprops) {
itemType: ITEM_TYPE.HEADER,
height: 68,
});
}, [collectionSummaries, activeCollectionID, isInSearchMode]);
}, [
collectionSummaries,
activeCollectionID,
isInSearchMode,
isCollectionDownloadInProgress,
]);
if (shouldBeHidden) {
return <></>;

View file

@ -336,6 +336,9 @@ export function PhotoList({
displayFiles,
deduplicateContext.isOnDeduplicatePage,
deduplicateContext.fileSizeMap,
deduplicateContext.clubSameTimeFilesOnly,
galleryContext.photoListHeader,
publicCollectionGalleryContext.photoListHeader,
]);
useEffect(() => {