diff --git a/src/pages/gallery/index.tsx b/src/pages/gallery/index.tsx index f81714da7..35e3e0cea 100644 --- a/src/pages/gallery/index.tsx +++ b/src/pages/gallery/index.tsx @@ -99,6 +99,8 @@ import { NotificationAttributes } from 'types/Notification'; import { ITEM_TYPE, TimeStampListItem } from 'components/PhotoList'; import UploadInputs from 'components/UploadSelectorInputs'; import useFileInput from 'hooks/useFileInput'; +import { User } from 'types/user'; +import { getData, LS_KEYS } from 'utils/storage/localStorage'; export const DeadCenter = styled('div')` flex: 1; @@ -132,6 +134,7 @@ export const GalleryContext = createContext( export default function Gallery() { const router = useRouter(); + const [user, setUser] = useState(null); const [collections, setCollections] = useState(null); const [files, setFiles] = useState(null); @@ -244,10 +247,12 @@ export default function Gallery() { setPlanModalView(true); } setIsFirstLogin(false); + const user = getData(LS_KEYS.USER); const files = mergeMetadata(await getLocalFiles()); const collections = await getLocalCollections(); const trash = await getLocalTrash(); files.push(...getTrashedFiles(trash)); + setUser(user); setFiles(sortFiles(files)); setCollections(collections); await syncWithRemote(true); @@ -260,7 +265,10 @@ export default function Gallery() { }, []); useEffect(() => { - setDerivativeState(collections, files); + if (!user || !files || !collections) { + return; + } + setDerivativeState(user, collections, files); }, [collections, files]); useEffect( @@ -375,18 +383,17 @@ export default function Gallery() { }; const setDerivativeState = async ( + user: User, collections: Collection[], files: EnteFile[] ) => { - if (!collections || !files) { - return; - } const favItemIds = await getFavItemIds(files); setFavItemIds(favItemIds); const archivedCollections = getArchivedCollections(collections); setArchivedCollections(archivedCollections); const collectionSummaries = getCollectionSummaries( + user, collections, files, archivedCollections diff --git a/src/services/collectionService.ts b/src/services/collectionService.ts index 78e2f2766..1f69e357a 100644 --- a/src/services/collectionService.ts +++ b/src/services/collectionService.ts @@ -770,6 +770,7 @@ function compareCollectionsLatestFile(first: EnteFile, second: EnteFile) { } export function getCollectionSummaries( + user: User, collections: Collection[], files: EnteFile[], archivedCollections: Set @@ -781,7 +782,6 @@ export function getCollectionSummaries( ); const collectionFilesCount = getCollectionsFileCount(files); const uniqueFileCount = new Set(files.map((file) => file.id)).size; - const user: User = getData(LS_KEYS.USER); for (const collection of collections) { if (collectionFilesCount.get(collection.id)) {