11import React , { useEffect , useState } from 'react' ;
22import type { ImageStyle , StyleProp , ViewStyle } from 'react-native' ;
33import { View } from 'react-native' ;
4- import useDefaultAvatars from '@hooks/useDefaultAvatars' ;
54import useNetwork from '@hooks/useNetwork' ;
65import useStyleUtils from '@hooks/useStyleUtils' ;
76import useTheme from '@hooks/useTheme' ;
@@ -14,6 +13,7 @@ import type {AvatarSizeName} from '@styles/utils';
1413import CONST from '@src/CONST' ;
1514import type { AvatarType } from '@src/types/onyx/OnyxCommon' ;
1615import Icon from './Icon' ;
16+ import * as Expensicons from './Icon/Expensicons' ;
1717import Image from './Image' ;
1818
1919type AvatarProps = {
@@ -66,7 +66,7 @@ function Avatar({
6666 containerStyles,
6767 size = CONST . AVATAR_SIZE . DEFAULT ,
6868 fill,
69- fallbackIcon,
69+ fallbackIcon = Expensicons . FallbackAvatar ,
7070 fallbackIconTestID = '' ,
7171 type,
7272 name = '' ,
@@ -77,7 +77,6 @@ function Avatar({
7777 const styles = useThemeStyles ( ) ;
7878 const StyleUtils = useStyleUtils ( ) ;
7979 const [ imageError , setImageError ] = useState ( false ) ;
80- const defaultAvatars = useDefaultAvatars ( ) ;
8180
8281 useNetwork ( { onReconnect : ( ) => setImageError ( false ) } ) ;
8382
@@ -88,16 +87,15 @@ function Avatar({
8887 const isWorkspace = type === CONST . ICON_TYPE_WORKSPACE ;
8988 const userAccountID = isWorkspace ? undefined : ( avatarID as number ) ;
9089
91- const source = isWorkspace ? originalSource : getAvatar ( { avatarSource : originalSource , accountID : userAccountID , defaultAvatars } ) ;
90+ const source = isWorkspace ? originalSource : getAvatar ( { avatarSource : originalSource , accountID : userAccountID } ) ;
9291 let optimizedSource = source ;
9392 const maybeDefaultAvatarName = getPresetAvatarNameFromURL ( source ) ;
9493
9594 if ( maybeDefaultAvatarName ) {
9695 optimizedSource = getAvatarLocal ( maybeDefaultAvatarName ) ;
9796 }
98- const useFallBackAvatar = imageError || ! source || source === defaultAvatars . FallbackAvatar ;
99- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
100- const fallbackAvatar = isWorkspace ? getDefaultWorkspaceAvatar ( name ) : fallbackIcon || defaultAvatars . FallbackAvatar ;
97+ const useFallBackAvatar = imageError || ! source || source === Expensicons . FallbackAvatar ;
98+ const fallbackAvatar = isWorkspace ? getDefaultWorkspaceAvatar ( name ) : fallbackIcon || Expensicons . FallbackAvatar ;
10199 const fallbackAvatarTestID = isWorkspace ? getDefaultWorkspaceAvatarTestID ( name ) : fallbackIconTestID || 'SvgFallbackAvatar Icon' ;
102100 const avatarSource = useFallBackAvatar ? fallbackAvatar : optimizedSource ;
103101
@@ -110,7 +108,7 @@ function Avatar({
110108 if ( isWorkspace ) {
111109 iconColors = StyleUtils . getDefaultWorkspaceAvatarColor ( avatarID ?. toString ( ) ?? '' ) ;
112110 // Assign the icon fill color only for the default fallback avatar
113- } else if ( useFallBackAvatar && avatarSource === defaultAvatars . FallbackAvatar ) {
111+ } else if ( useFallBackAvatar && avatarSource === Expensicons . FallbackAvatar ) {
114112 iconColors = StyleUtils . getBackgroundColorAndFill ( theme . buttonHoveredBG , theme . icon ) ;
115113 } else {
116114 iconColors = null ;
0 commit comments