cancelled failed payment if not showing qr
This commit is contained in:
parent
5ae3084e53
commit
5cfefc1ca8
@ -1,6 +1,6 @@
|
|||||||
import { useApolloClient, useLazyQuery, useMutation } from '@apollo/client'
|
import { useApolloClient, useLazyQuery, useMutation } from '@apollo/client'
|
||||||
import { useCallback, useState } from 'react'
|
import { useCallback, useState } from 'react'
|
||||||
import { InvoiceCanceledError, InvoiceExpiredError, useQrPayment, useWalletPayment } from './payment'
|
import { InvoiceCanceledError, InvoiceExpiredError, useInvoice, useQrPayment, useWalletPayment } from './payment'
|
||||||
import { GET_PAID_ACTION } from '@/fragments/paidAction'
|
import { GET_PAID_ACTION } from '@/fragments/paidAction'
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -23,6 +23,7 @@ export function usePaidMutation (mutation,
|
|||||||
fetchPolicy: 'network-only'
|
fetchPolicy: 'network-only'
|
||||||
})
|
})
|
||||||
const waitForWalletPayment = useWalletPayment()
|
const waitForWalletPayment = useWalletPayment()
|
||||||
|
const invoiceHelper = useInvoice()
|
||||||
const waitForQrPayment = useQrPayment()
|
const waitForQrPayment = useQrPayment()
|
||||||
const client = useApolloClient()
|
const client = useApolloClient()
|
||||||
// innerResult is used to store/control the result of the mutation when innerMutate runs
|
// innerResult is used to store/control the result of the mutation when innerMutate runs
|
||||||
@ -40,12 +41,14 @@ export function usePaidMutation (mutation,
|
|||||||
err instanceof InvoiceExpiredError) {
|
err instanceof InvoiceExpiredError) {
|
||||||
// bail since qr code payment will also fail
|
// bail since qr code payment will also fail
|
||||||
// also bail if the payment took more than 1 second
|
// also bail if the payment took more than 1 second
|
||||||
|
// and cancel the invoice if it's not already canceled so it can be retried
|
||||||
|
invoiceHelper.cancel(invoice).catch(console.error)
|
||||||
throw err
|
throw err
|
||||||
}
|
}
|
||||||
walletError = err
|
walletError = err
|
||||||
}
|
}
|
||||||
return await waitForQrPayment(invoice, walletError, { persistOnNavigate, waitFor })
|
return await waitForQrPayment(invoice, walletError, { persistOnNavigate, waitFor })
|
||||||
}, [waitForWalletPayment, waitForQrPayment])
|
}, [waitForWalletPayment, waitForQrPayment, invoiceHelper])
|
||||||
|
|
||||||
const innerMutate = useCallback(async ({
|
const innerMutate = useCallback(async ({
|
||||||
onCompleted: innerOnCompleted, ...innerOptions
|
onCompleted: innerOnCompleted, ...innerOptions
|
||||||
|
Loading…
x
Reference in New Issue
Block a user