import { isEmpty } from 'lodash'; import { UserUtils } from '..'; import { UserConfigWrapperActions } from '../../../webworker/workers/browser/libsession_worker_interface'; import { getConversationController } from '../../conversations'; import { fromHexToArray } from '../String'; async function insertUserProfileIntoWrapper(convoId: string) { if (!isUserProfileToStoreInContactsWrapper(convoId)) { return; } const us = UserUtils.getOurPubKeyStrFromCache(); const ourConvo = getConversationController().get(us); if (!ourConvo) { throw new Error('insertUserProfileIntoWrapper needs a ourConvo to exist'); } const dbName = ourConvo.get('displayNameInProfile') || ''; const dbProfileUrl = ourConvo.get('avatarPointer') || ''; const dbProfileKey = fromHexToArray(ourConvo.get('profileKey') || ''); await UserConfigWrapperActions.setName(dbName); if (dbProfileUrl && !isEmpty(dbProfileKey)) { await UserConfigWrapperActions.setProfilePicture(dbProfileUrl, dbProfileKey); } else { await UserConfigWrapperActions.setProfilePicture('', new Uint8Array()); } } function isUserProfileToStoreInContactsWrapper(convoId: string) { try { const us = UserUtils.getOurPubKeyStrFromCache(); return convoId === us; } catch (e) { return false; } } export const SessionUtilUserProfile = { insertUserProfileIntoWrapper, isUserProfileToStoreInContactsWrapper, };