update userIDToEmailMap galleryContext

This commit is contained in:
Abhinav 2023-06-27 15:59:20 +05:30
parent eaef488130
commit 6a2e83629f
3 changed files with 15 additions and 21 deletions

View file

@ -120,7 +120,7 @@ import { IsArchived } from 'utils/magicMetadata';
import { isSameDayAnyYear, isInsideLocationTag } from 'utils/search'; import { isSameDayAnyYear, isInsideLocationTag } from 'utils/search';
import { getSessionExpiredMessage } from 'utils/ui'; import { getSessionExpiredMessage } from 'utils/ui';
import { syncEntities } from 'services/entityService'; import { syncEntities } from 'services/entityService';
import { userIdtoEmail } from 'services/collectionService'; import { constructUserIDToEmailMap } from 'services/collectionService';
export const DeadCenter = styled('div')` export const DeadCenter = styled('div')`
flex: 1; flex: 1;
@ -142,7 +142,7 @@ const defaultGalleryContext: GalleryContextType = {
openExportModal: () => null, openExportModal: () => null,
authenticateUser: () => null, authenticateUser: () => null,
user: null, user: null,
idToMail: new Map(), userIDToEmailMap: null,
}; };
export const GalleryContext = createContext<GalleryContextType>( export const GalleryContext = createContext<GalleryContextType>(
@ -218,6 +218,8 @@ export default function Gallery() {
useContext(AppContext); useContext(AppContext);
const [collectionSummaries, setCollectionSummaries] = const [collectionSummaries, setCollectionSummaries] =
useState<CollectionSummaries>(); useState<CollectionSummaries>();
const [userIDToEmailMap, setUserIDToEmailMap] =
useState<Map<number, string>>(null);
const [activeCollection, setActiveCollection] = useState<number>(undefined); const [activeCollection, setActiveCollection] = useState<number>(undefined);
const [fixCreationTimeView, setFixCreationTimeView] = useState(false); const [fixCreationTimeView, setFixCreationTimeView] = useState(false);
const [fixCreationTimeAttributes, setFixCreationTimeAttributes] = const [fixCreationTimeAttributes, setFixCreationTimeAttributes] =
@ -314,23 +316,13 @@ export default function Gallery() {
setDerivativeState(user, collections, files, trashedFiles, hiddenFiles); setDerivativeState(user, collections, files, trashedFiles, hiddenFiles);
}, [collections, files, hiddenFiles, trashedFiles, user]); }, [collections, files, hiddenFiles, trashedFiles, user]);
const { idToMail } = useContext(GalleryContext);
useEffect(() => { useEffect(() => {
const fetchData = async () => { const fetchData = async () => {
if (!collections) { if (!collections) {
return; return;
} }
const userIdToEmailMap = await constructUserIDToEmailMap();
const userIdEmail = await userIdtoEmail(); setUserIDToEmailMap(userIdToEmailMap);
const idEmailMap = userIdEmail;
idToMail.clear(); // Clear the existing map
// Update idToMail with idEmailMap values
for (const [id, email] of idEmailMap) {
idToMail.set(id, email);
}
}; };
fetchData(); fetchData();
}, [collections]); }, [collections]);
@ -868,6 +860,7 @@ export default function Gallery() {
photoListHeader, photoListHeader,
openExportModal, openExportModal,
authenticateUser, authenticateUser,
userIDToEmailMap,
user, user,
}}> }}>
<FullScreenDropZone <FullScreenDropZone

View file

@ -1261,28 +1261,29 @@ export async function unhideToCollection(
} }
} }
export const userIdtoEmail = async (): Promise<Map<number, string>> => { export const constructUserIDToEmailMap = async (): Promise<
Map<number, string>
> => {
try { try {
const collection = await getLocalCollections(); const collection = await getLocalCollections();
const user: User = getData(LS_KEYS.USER); const user: User = getData(LS_KEYS.USER);
const emailMapping = new Map<number, string>(); const userIDToEmail = new Map<number, string>();
collection.map((item) => { collection.map((item) => {
const { owner } = item; const { owner } = item;
const { sharees } = item; const { sharees } = item;
if (user.id !== owner.id && owner.email) { if (user.id !== owner.id && owner.email) {
emailMapping.set(owner.id, owner.email); userIDToEmail.set(owner.id, owner.email);
} }
if (sharees) { if (sharees) {
sharees.map((item) => { sharees.map((item) => {
if (item.id !== user.id) if (item.id !== user.id)
emailMapping.set(item.id, item.email); userIDToEmail.set(item.id, item.email);
}); });
} }
}); });
const userIdToEmail = emailMapping; return userIDToEmail;
return userIdToEmail;
} catch (e) { } catch (e) {
logError('Error Mapping UserId to email:', e); logError('Error Mapping UserId to email:', e);
return new Map<number, string>(); return new Map<number, string>();

View file

@ -37,7 +37,7 @@ export type GalleryContextType = {
openExportModal: () => void; openExportModal: () => void;
authenticateUser: (callback: () => void) => void; authenticateUser: (callback: () => void) => void;
user: User; user: User;
idToMail: Map<number, string>; userIDToEmailMap: Map<number, string>;
}; };
export enum CollectionSelectorIntent { export enum CollectionSelectorIntent {