From c47311b4a70d384d08389959c50faa2a6e7d0e91 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sun, 30 Jan 2022 23:32:56 -0300 Subject: if order has been paid, redirect to the fulfillment_url --- packages/taler-wallet-webextension/src/cta/Pay.tsx | 27 ++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'packages/taler-wallet-webextension/src/cta') diff --git a/packages/taler-wallet-webextension/src/cta/Pay.tsx b/packages/taler-wallet-webextension/src/cta/Pay.tsx index c0fcca169..427a3a715 100644 --- a/packages/taler-wallet-webextension/src/cta/Pay.tsx +++ b/packages/taler-wallet-webextension/src/cta/Pay.tsx @@ -40,7 +40,7 @@ import { } from "@gnu-taler/taler-util"; import { OperationFailedError } from "@gnu-taler/taler-wallet-core"; import { Fragment, h, VNode } from "preact"; -import { useState } from "preact/hooks"; +import { useEffect, useState } from "preact/hooks"; import { Loading } from "../components/Loading"; import { LoadingError } from "../components/LoadingError"; import { LogoHeader } from "../components/LogoHeader"; @@ -161,6 +161,20 @@ export function PaymentRequestView({ let totalFees: AmountJson = Amounts.getZero(payStatus.amountRaw); const contractTerms: ContractTerms = payStatus.contractTerms; + useEffect(() => { + if ( + payStatus.status === PreparePayResultType.AlreadyConfirmed && + payStatus.paid + ) { + const fu = payStatus.contractTerms.fulfillment_url; + if (fu) { + setTimeout(() => { + document.location.href = fu; + }, 3000); + } + } + }); + if (!contractTerms) { return ( @@ -281,7 +295,16 @@ export function PaymentRequestView({

{i18n.str`Digital cash payment`}

{payStatus.status === PreparePayResultType.AlreadyConfirmed && (payStatus.paid ? ( - Already paid + payStatus.contractTerms.fulfillment_url ? ( + + Already paid, you are going to be redirected to{" "} + + {payStatus.contractTerms.fulfillment_url} + + + ) : ( + Already paid + ) ) : ( Already claimed ))} -- cgit v1.2.3