@@ -10,13 +10,14 @@ import useResponsiveLayout from '@hooks/useResponsiveLayout';
1010import useTheme from '@hooks/useTheme' ;
1111import useThemeStyles from '@hooks/useThemeStyles' ;
1212import { clearDelegatorErrors , connect , disconnect } from '@libs/actions/Delegate' ;
13+ import * as ErrorUtils from '@libs/ErrorUtils' ;
1314import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils' ;
1415import variables from '@styles/variables' ;
1516import * as Modal from '@userActions/Modal' ;
1617import CONST from '@src/CONST' ;
17- import type { TranslationPaths } from '@src/languages/types' ;
1818import ONYXKEYS from '@src/ONYXKEYS' ;
1919import type { PersonalDetails } from '@src/types/onyx' ;
20+ import type { Errors } from '@src/types/onyx/OnyxCommon' ;
2021import Avatar from './Avatar' ;
2122import ConfirmModal from './ConfirmModal' ;
2223import Icon from './Icon' ;
@@ -46,7 +47,8 @@ function AccountSwitcher() {
4647 const isActingAsDelegate = ! ! account ?. delegatedAccess ?. delegate ?? false ;
4748 const canSwitchAccounts = canUseNewDotCopilot && ( delegators . length > 0 || isActingAsDelegate ) ;
4849
49- const createBaseMenuItem = ( personalDetails : PersonalDetails | undefined , error ?: TranslationPaths , additionalProps : MenuItemWithLink = { } ) : MenuItemWithLink => {
50+ const createBaseMenuItem = ( personalDetails : PersonalDetails | undefined , errors ?: Errors , additionalProps : MenuItemWithLink = { } ) : MenuItemWithLink => {
51+ const error = Object . values ( errors ?? { } ) [ 0 ] ?? '' ;
5052 return {
5153 title : personalDetails ?. displayName ?? personalDetails ?. login ,
5254 description : Str . removeSMSDomain ( personalDetails ?. login ?? '' ) ,
@@ -55,7 +57,7 @@ function AccountSwitcher() {
5557 iconType : CONST . ICON_TYPE_AVATAR ,
5658 outerWrapperStyle : shouldUseNarrowLayout ? { } : styles . accountSwitcherPopover ,
5759 numberOfLinesDescription : 1 ,
58- errorText : error ? translate ( error ) : '' ,
60+ errorText : error ?? '' ,
5961 shouldShowRedDotIndicator : ! ! error ,
6062 errorTextStyle : styles . mt2 ,
6163 ...additionalProps ,
@@ -81,7 +83,7 @@ function AccountSwitcher() {
8183 }
8284
8385 const delegatePersonalDetails = PersonalDetailsUtils . getPersonalDetailByEmail ( delegateEmail ) ;
84- const error = account ?. delegatedAccess ?. error ;
86+ const error = ErrorUtils . getLatestErrorField ( account ?. delegatedAccess , 'connect' ) ;
8587
8688 return [
8789 createBaseMenuItem ( delegatePersonalDetails , error , {
@@ -100,7 +102,8 @@ function AccountSwitcher() {
100102
101103 const delegatorMenuItems : MenuItemProps [ ] = delegators
102104 . filter ( ( { email} ) => email !== currentUserPersonalDetails . login )
103- . map ( ( { email, role, error} , index ) => {
105+ . map ( ( { email, role, errorFields} , index ) => {
106+ const error = ErrorUtils . getLatestErrorField ( { errorFields} , 'connect' ) ;
104107 const personalDetails = PersonalDetailsUtils . getPersonalDetailByEmail ( email ) ;
105108 return createBaseMenuItem ( personalDetails , error , {
106109 badgeText : translate ( 'delegate.role' , role ) ,
@@ -177,7 +180,7 @@ function AccountSwitcher() {
177180 anchorPosition = { styles . accountSwitcherAnchorPosition }
178181 >
179182 < View style = { styles . pb4 } >
180- < Text style = { [ styles . createMenuHeaderText , styles . ph5 , styles . pb2 , styles . pt4 ] } > { translate ( 'delegate.switchAccount' ) } </ Text >
183+ < Text style = { [ styles . createMenuHeaderText , styles . ph5 , styles . pb3 , ! shouldUseNarrowLayout && styles . pt4 ] } > { translate ( 'delegate.switchAccount' ) } </ Text >
181184 < MenuItemList
182185 menuItems = { menuItems ( ) }
183186 shouldUseSingleExecution
0 commit comments