@@ -18,18 +18,20 @@ import { useState, useEffect, useRef, useCallback } from 'react';
18
18
import { useTranslation } from 'react-i18next' ;
19
19
import { Header } from '@/components/layout' ;
20
20
import { Spinner } from '@/components/spinner/Spinner' ;
21
- import { AccountCode , IAccount , proposeTx , sendTx , TTxInput } from '@/api/account' ;
21
+ import { AccountCode , IAccount , proposeTx , sendTx , TTxInput , TTxProposalResult } from '@/api/account' ;
22
22
import { findAccount , isBitcoinOnly } from '@/routes/account/utils' ;
23
23
import { useDarkmode } from '@/hooks/darkmode' ;
24
24
import { getConfig } from '@/utils/config' ;
25
- import style from './iframe.module.css' ;
26
25
import { i18n } from '@/i18n/i18n' ;
27
26
import { alertUser } from '@/components/alert/Alert' ;
28
27
import { parseExternalBtcAmount } from '@/api/coins' ;
29
28
import { useLoad } from '@/hooks/api' ;
30
29
import { BitrefillTerms , localeMapping } from '@/components/terms/bitrefill-terms' ;
31
30
import { getBitrefillInfo } from '@/api/market' ;
32
31
import { getURLOrigin } from '@/utils/url' ;
32
+ import { WaitDialog } from '@/components/wait-dialog/wait-dialog' ;
33
+ import { AmountWithUnit } from '@/components/amount/amount-with-unit' ;
34
+ import style from './iframe.module.css' ;
33
35
34
36
// Map coins supported by Bitrefill
35
37
const coinMapping : Readonly < Record < string , string > > = {
@@ -61,6 +63,8 @@ export const Bitrefill = ({ accounts, code }: TProps) => {
61
63
const config = useLoad ( getConfig ) ;
62
64
const [ agreedTerms , setAgreedTerms ] = useState ( false ) ;
63
65
66
+ const [ verifyPaymentRequest , setVerifyPaymentRequest ] = useState < TTxProposalResult & { address : string } | false > ( ) ;
67
+
64
68
const hasOnlyBTCAccounts = accounts . every ( ( { coinCode } ) => isBitcoinOnly ( coinCode ) ) ;
65
69
66
70
useEffect ( ( ) => {
@@ -156,7 +160,13 @@ export const Bitrefill = ({ accounts, code }: TProps) => {
156
160
name : 'Bitrefill' ,
157
161
orderId : invoiceId ,
158
162
} ) ;
163
+
164
+ setVerifyPaymentRequest ( {
165
+ address : paymentAddress ,
166
+ ...result
167
+ } ) ;
159
168
const sendResult = await sendTx ( code , txNote ) ;
169
+ setVerifyPaymentRequest ( false ) ;
160
170
if ( ! sendResult . success && ! ( 'aborted' in sendResult ) ) {
161
171
alertUser ( t ( 'unknownError' , { errorMessage : sendResult . errorMessage } ) ) ;
162
172
}
@@ -225,6 +235,26 @@ export const Bitrefill = ({ accounts, code }: TProps) => {
225
235
} }
226
236
/>
227
237
) }
238
+
239
+ { verifyPaymentRequest && verifyPaymentRequest . success && (
240
+ < WaitDialog title = { t ( 'receive.verifyBitBox02' ) } >
241
+ < p >
242
+ { t ( 'transaction.details.address' ) }
243
+ < br />
244
+ { verifyPaymentRequest . address }
245
+ </ p >
246
+ < p >
247
+ { t ( 'transaction.details.amount' ) }
248
+ < br />
249
+ < AmountWithUnit amount = { verifyPaymentRequest . amount } />
250
+ </ p >
251
+ < p >
252
+ { t ( 'transaction.fee' ) }
253
+ < br />
254
+ < AmountWithUnit amount = { verifyPaymentRequest . fee } />
255
+ </ p >
256
+ </ WaitDialog >
257
+ ) }
228
258
</ div >
229
259
) }
230
260
</ div >
0 commit comments