@@ -10,6 +10,7 @@ import {
1010 DataIndicator ,
1111 H4 ,
1212 Link ,
13+ ParSm ,
1314 ParXs ,
1415 Tag ,
1516} from '@daohaus/ui' ;
@@ -50,7 +51,9 @@ export const SafeCard = ({
5051 const tokenBalances = useMemo ( ( ) => {
5152 const network = getNetwork ( daoChain ) ;
5253
53- return safe . tokenBalances . map ( ( t ) => {
54+ const balances = safe . tokenBalances || [ ] ;
55+
56+ return balances . map ( ( t ) => {
5457 return {
5558 tokenLogo : t . token ?. logoUri ,
5659 tokenName : t . token ?. name || nativeTokenSymbol ,
@@ -62,7 +65,7 @@ export const SafeCard = ({
6265 } ;
6366 } ) ;
6467 // eslint-disable-next-line react-hooks/exhaustive-deps
65- } , [ safe ] ) ;
68+ } , [ safe , safe . tokenBalances ] ) ;
6669
6770 return (
6871 < SafeContainer >
@@ -103,27 +106,36 @@ export const SafeCard = ({
103106 ) }
104107 </ div >
105108 </ SafeCardHeader >
106- < DataGrid >
107- < DataIndicator label = "Tokens" data = { safe . tokenBalances . length } />
108- </ DataGrid >
109- { safe . tokenBalances . length > 0 && (
110- < CollapsibleCard
111- triggerLabel = "Balances"
112- width = "auto"
113- collapsibleContent = { < SafeBalancesTable balances = { tokenBalances } /> }
114- >
115- < div >
116- { safe . tokenBalances . map ( ( token ) => (
117- < Avatar
118- alt = { token . token ?. name || token . tokenAddress || '' }
119- size = "md"
120- src = { token . token ?. logoUri || '' }
121- fallback = { token . token ?. symbol || nativeTokenSymbol }
122- key = { token . tokenAddress }
123- />
124- ) ) }
125- </ div >
126- </ CollapsibleCard >
109+ { ! safe . tokenBalances && (
110+ < ParSm > Unable to fetch token balances try later</ ParSm >
111+ ) }
112+ { safe . tokenBalances && (
113+ < >
114+ < DataGrid >
115+ < DataIndicator label = "Tokens" data = { safe . tokenBalances ?. length } />
116+ </ DataGrid >
117+ { safe . tokenBalances ?. length > 0 && (
118+ < CollapsibleCard
119+ triggerLabel = "Balances"
120+ width = "auto"
121+ collapsibleContent = {
122+ < SafeBalancesTable balances = { tokenBalances } />
123+ }
124+ >
125+ < div >
126+ { safe . tokenBalances . map ( ( token ) => (
127+ < Avatar
128+ alt = { token . token ?. name || token . tokenAddress || '' }
129+ size = "md"
130+ src = { token . token ?. logoUri || '' }
131+ fallback = { token . token ?. symbol || nativeTokenSymbol }
132+ key = { token . tokenAddress }
133+ />
134+ ) ) }
135+ </ div >
136+ </ CollapsibleCard >
137+ ) }
138+ </ >
127139 ) }
128140 </ SafeOverviewCard >
129141 </ SafeContainer >
0 commit comments