Remove unused function usePayment (#1641)
This commit is contained in:
parent
a7ea380476
commit
3023d8a5d3
|
@ -1,11 +1,9 @@
|
|||
import { useCallback } from 'react'
|
||||
import { useMe } from './me'
|
||||
import { gql, useApolloClient, useMutation } from '@apollo/client'
|
||||
import { useWallet } from '@/wallets/index'
|
||||
import { FAST_POLL_INTERVAL, JIT_INVOICE_TIMEOUT_MS } from '@/lib/constants'
|
||||
import { INVOICE } from '@/fragments/wallet'
|
||||
import Invoice from '@/components/invoice'
|
||||
import { useFeeButton } from './fee-button'
|
||||
import { useShowModal } from './modal'
|
||||
import { InvoiceCanceledError, NoAttachedWalletError, InvoiceExpiredError } from '@/wallets/errors'
|
||||
|
||||
|
@ -186,53 +184,3 @@ export const useQrPayment = () => {
|
|||
|
||||
return waitForQrPayment
|
||||
}
|
||||
|
||||
export const usePayment = () => {
|
||||
const { me } = useMe()
|
||||
const feeButton = useFeeButton()
|
||||
const invoice = useInvoice()
|
||||
const waitForWalletPayment = useWalletPayment()
|
||||
const waitForQrPayment = useQrPayment()
|
||||
|
||||
const waitForPayment = useCallback(async (invoice) => {
|
||||
let walletError
|
||||
try {
|
||||
return await waitForWalletPayment(invoice)
|
||||
} catch (err) {
|
||||
if (err instanceof InvoiceCanceledError || err instanceof InvoiceExpiredError) {
|
||||
// bail since qr code payment will also fail
|
||||
throw err
|
||||
}
|
||||
walletError = err
|
||||
}
|
||||
return await waitForQrPayment(invoice, walletError)
|
||||
}, [waitForWalletPayment, waitForQrPayment])
|
||||
|
||||
const request = useCallback(async (amount) => {
|
||||
amount ??= feeButton?.total
|
||||
const free = feeButton?.free
|
||||
const balance = me ? me.privates.sats : 0
|
||||
|
||||
// if user has enough funds in their custodial wallet or action is free, never prompt for payment
|
||||
// XXX this will probably not work as intended for deposits < balance
|
||||
// which means you can't always fund your custodial wallet with attached wallets ...
|
||||
// but should this even be the case?
|
||||
const insufficientFunds = balance < amount
|
||||
if (free || !insufficientFunds) return [{ hash: null, hmac: null }, null]
|
||||
|
||||
const inv = await invoice.create(amount)
|
||||
|
||||
await waitForPayment(inv)
|
||||
|
||||
const cancel = () => invoice.cancel(inv).catch(console.error)
|
||||
return [inv, cancel]
|
||||
}, [me, feeButton?.total, invoice, waitForPayment])
|
||||
|
||||
const cancel = useCallback(({ hash, hmac }) => {
|
||||
if (hash && hmac) {
|
||||
invoice.cancel({ hash, hmac }).catch(console.error)
|
||||
}
|
||||
}, [invoice])
|
||||
|
||||
return { request, cancel }
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue