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 { 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
|
||||||
|
|
|
@ -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>();
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
Loading…
Reference in a new issue