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 { getSessionExpiredMessage } from 'utils/ui';
import { syncEntities } from 'services/entityService';
import { userIdtoEmail } from 'services/collectionService';
import { constructUserIDToEmailMap } from 'services/collectionService';
export const DeadCenter = styled('div')`
flex: 1;
@ -142,7 +142,7 @@ const defaultGalleryContext: GalleryContextType = {
openExportModal: () => null,
authenticateUser: () => null,
user: null,
idToMail: new Map(),
userIDToEmailMap: null,
};
export const GalleryContext = createContext<GalleryContextType>(
@ -218,6 +218,8 @@ export default function Gallery() {
useContext(AppContext);
const [collectionSummaries, setCollectionSummaries] =
useState<CollectionSummaries>();
const [userIDToEmailMap, setUserIDToEmailMap] =
useState<Map<number, string>>(null);
const [activeCollection, setActiveCollection] = useState<number>(undefined);
const [fixCreationTimeView, setFixCreationTimeView] = useState(false);
const [fixCreationTimeAttributes, setFixCreationTimeAttributes] =
@ -314,23 +316,13 @@ export default function Gallery() {
setDerivativeState(user, collections, files, trashedFiles, hiddenFiles);
}, [collections, files, hiddenFiles, trashedFiles, user]);
const { idToMail } = useContext(GalleryContext);
useEffect(() => {
const fetchData = async () => {
if (!collections) {
return;
}
const userIdEmail = await userIdtoEmail();
const idEmailMap = userIdEmail;
idToMail.clear(); // Clear the existing map
// Update idToMail with idEmailMap values
for (const [id, email] of idEmailMap) {
idToMail.set(id, email);
}
const userIdToEmailMap = await constructUserIDToEmailMap();
setUserIDToEmailMap(userIdToEmailMap);
};
fetchData();
}, [collections]);
@ -868,6 +860,7 @@ export default function Gallery() {
photoListHeader,
openExportModal,
authenticateUser,
userIDToEmailMap,
user,
}}>
<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 {
const collection = await getLocalCollections();
const user: User = getData(LS_KEYS.USER);
const emailMapping = new Map<number, string>();
const userIDToEmail = new Map<number, string>();
collection.map((item) => {
const { owner } = item;
const { sharees } = item;
if (user.id !== owner.id && owner.email) {
emailMapping.set(owner.id, owner.email);
userIDToEmail.set(owner.id, owner.email);
}
if (sharees) {
sharees.map((item) => {
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) {
logError('Error Mapping UserId to email:', e);
return new Map<number, string>();

View file

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