update userIDToEmailMap galleryContext
This commit is contained in:
parent
eaef488130
commit
6a2e83629f
|
@ -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
|
||||
|
|
|
@ -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>();
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue