InvoicePayButton.tsx 724 B

12345678910111213141516171819202122232425262728293031
  1. import { toast } from 'sonner'
  2. import { Button } from 'ui'
  3. import { useInvoicePaymentLinkGetMutation } from '@/data/invoices/invoice-payment-link-mutation'
  4. interface InvoicePayButtonProps {
  5. slug?: string
  6. invoiceId: string
  7. }
  8. const InvoicePayButton = ({ slug, invoiceId }: InvoicePayButtonProps) => {
  9. const { mutate, isPending } = useInvoicePaymentLinkGetMutation({
  10. onSuccess(data) {
  11. toast.success('Redirecting to payment gateway...')
  12. window.location.href = data.redirectUrl
  13. },
  14. })
  15. function onPayNow() {
  16. mutate({ slug, invoiceId })
  17. }
  18. return (
  19. <Button onClick={onPayNow} loading={isPending} disabled={isPending}>
  20. Pay now
  21. </Button>
  22. )
  23. }
  24. export default InvoicePayButton