From f5b4d74c572527ba30dbd0495375ce0d7976af02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Le=C5=9Bniewski?= Date: Wed, 4 Feb 2026 20:22:00 +0100 Subject: [PATCH 1/2] fix: avatar loading while log in from public room --- .../CurrentUserPersonalDetailsProvider.tsx | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/components/CurrentUserPersonalDetailsProvider.tsx b/src/components/CurrentUserPersonalDetailsProvider.tsx index 81965c11515c4..14e0e78bfbf27 100644 --- a/src/components/CurrentUserPersonalDetailsProvider.tsx +++ b/src/components/CurrentUserPersonalDetailsProvider.tsx @@ -1,4 +1,4 @@ -import React, {createContext, useCallback} from 'react'; +import React, {createContext, useCallback, useEffect, useRef} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; import useOnyx from '@hooks/useOnyx'; import CONST from '@src/CONST'; @@ -15,17 +15,22 @@ const CurrentUserPersonalDetailsContext = createContext { + sessionRef.current = session; + }, [session?.accountID]); + const userAccountSelector = useCallback( (allPersonalDetails: OnyxEntry): CurrentUserPersonalDetails => { - const personalDetailsForUser = (allPersonalDetails?.[userAccountID] ?? {}) as CurrentUserPersonalDetails; - personalDetailsForUser.accountID = userAccountID; - personalDetailsForUser.email = session?.email; - return personalDetailsForUser; + const userAccountID = sessionRef.current?.accountID ?? CONST.DEFAULT_NUMBER_ID; + return allPersonalDetails?.[userAccountID] as CurrentUserPersonalDetails; }, - [session?.email, userAccountID], + [], ); - const [currentUserPersonalDetails = defaultCurrentUserPersonalDetails] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {selector: userAccountSelector, canBeMissing: true}); + const [currentUserPersonalDetails = defaultCurrentUserPersonalDetails] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {selector: userAccountSelector, canBeMissing: true}, [session?.accountID]); return {children}; } From 1a64c8a33b4152f2ad84cea1e4f582e54cc5b936 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Le=C5=9Bniewski?= Date: Wed, 4 Feb 2026 23:56:36 +0100 Subject: [PATCH 2/2] refactor CurrentUserPersonalDetailsContext to utilize useMemo --- .../CurrentUserPersonalDetailsProvider.tsx | 25 +++++-------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/src/components/CurrentUserPersonalDetailsProvider.tsx b/src/components/CurrentUserPersonalDetailsProvider.tsx index 14e0e78bfbf27..a6ba80f4eb597 100644 --- a/src/components/CurrentUserPersonalDetailsProvider.tsx +++ b/src/components/CurrentUserPersonalDetailsProvider.tsx @@ -1,9 +1,7 @@ -import React, {createContext, useCallback, useEffect, useRef} from 'react'; -import type {OnyxEntry} from 'react-native-onyx'; +import React, {createContext, useMemo} from 'react'; import useOnyx from '@hooks/useOnyx'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; -import type {PersonalDetailsList} from '@src/types/onyx'; import type {CurrentUserPersonalDetails} from '@src/types/onyx/PersonalDetails'; import {useSession} from './OnyxListItemProvider'; @@ -15,22 +13,11 @@ const CurrentUserPersonalDetailsContext = createContext { - sessionRef.current = session; - }, [session?.accountID]); - - const userAccountSelector = useCallback( - (allPersonalDetails: OnyxEntry): CurrentUserPersonalDetails => { - const userAccountID = sessionRef.current?.accountID ?? CONST.DEFAULT_NUMBER_ID; - return allPersonalDetails?.[userAccountID] as CurrentUserPersonalDetails; - }, - [], - ); - const [currentUserPersonalDetails = defaultCurrentUserPersonalDetails] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {selector: userAccountSelector, canBeMissing: true}, [session?.accountID]); + const accountID = session?.accountID ?? CONST.DEFAULT_NUMBER_ID; + const [personalDetailsList] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {canBeMissing: true}); + const currentUserPersonalDetails = useMemo(() => { + return personalDetailsList?.[accountID] ?? defaultCurrentUserPersonalDetails; + }, [personalDetailsList, accountID]); return {children}; }