@@ -66,20 +66,27 @@ function WaitForReserved({ rows = 2, skeletonHeight = 20, skeletonWidth = 60, st
66
66
67
67
const ReservedDetails = ( { reservedDetails, showReservedDetails } : ReservedDetailsType ) => {
68
68
const { t } = useTranslation ( ) ;
69
+ const [ stillFetching , setStillFetching ] = useState < boolean > ( false ) ;
69
70
70
71
const reasonsToShow = useMemo ( ( ) => {
71
- const details = Object . values ( reservedDetails ) ;
72
+ const reasons = Object . values ( reservedDetails ) ;
72
73
73
- if ( details . length === 0 ) {
74
+ const isStillFetchingSomething = reasons . some ( ( reason ) => reason === undefined ) ;
75
+ setStillFetching ( isStillFetchingSomething ) ;
76
+
77
+ // details are still fetching
78
+ if ( reasons . length === 0 ) {
74
79
return undefined
75
80
}
76
81
77
- const noReason = details . every ( ( deposit ) => deposit === null ) ;
82
+ const noReason = reasons . every ( ( reason ) => reason === null ) ;
78
83
84
+ // no reasons found
79
85
if ( noReason ) {
80
86
return null ;
81
87
}
82
88
89
+ // filter fetched reasons
83
90
const filteredReservedDetails = Object . fromEntries (
84
91
Object . entries ( reservedDetails ) . filter ( ( [ _key , value ] ) => value && ! value . isZero ( ) )
85
92
) ;
@@ -109,6 +116,7 @@ const ReservedDetails = ({ reservedDetails, showReservedDetails }: ReservedDetai
109
116
</ Grid >
110
117
) )
111
118
}
119
+ { stillFetching && < WaitForReserved rows = { 1 } /> }
112
120
</ Grid >
113
121
: reasonsToShow === null
114
122
? < Typography fontSize = '16px' fontWeight = { 500 } width = '100%' >
@@ -126,7 +134,7 @@ export default function ReservedDisplayBalance({ address, amount, assetToken, as
126
134
const reservedDetails = useReservedDetails ( address ) ;
127
135
const { decimal, genesisHash, token } = useInfo ( address ) ;
128
136
129
- const notOnNativeAsset = useMemo ( ( ) => ( assetId !== undefined && assetId > 0 ) || assetToken ?. toLowerCase ( ) !== token ?. toLowerCase ( ) , [ assetId , assetToken , token ] ) ;
137
+ const notOnNativeAsset = useMemo ( ( ) => ( assetId !== undefined && assetId > 0 ) || assetToken ?. toLowerCase ( ) !== token ?. toLowerCase ( ) , [ assetId , assetToken , token ] ) ;
130
138
131
139
const [ showReservedDetails , setShowReservedDetails ] = useState < boolean > ( false ) ;
132
140
0 commit comments