From 9a0285ee4b41c63d144de90d345f160adb39f30f Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 20 Sep 2021 00:19:31 -0300 Subject: handle more cases in the pay usa case --- packages/taler-wallet-webextension/src/cta/Pay.tsx | 64 ++++++++++------------ 1 file changed, 30 insertions(+), 34 deletions(-) (limited to 'packages/taler-wallet-webextension/src/cta/Pay.tsx') diff --git a/packages/taler-wallet-webextension/src/cta/Pay.tsx b/packages/taler-wallet-webextension/src/cta/Pay.tsx index e85cd60a1..c0038f8fd 100644 --- a/packages/taler-wallet-webextension/src/cta/Pay.tsx +++ b/packages/taler-wallet-webextension/src/cta/Pay.tsx @@ -40,7 +40,7 @@ import { ConfirmPayResultType, } from "@gnu-taler/taler-util"; import { JSX, VNode, h, Fragment } from "preact"; -import { ButtonSuccess, LinkSuccess, WalletAction } from "../components/styled"; +import { ButtonDestructive, ButtonSuccess, ButtonWarning, LinkSuccess, LinkWarning, WalletAction } from "../components/styled"; import { LogoHeader } from "../components/LogoHeader"; import { Part } from "../components/Part"; import { QR } from "../components/QR"; @@ -158,16 +158,8 @@ export interface PaymentRequestViewProps { } export function PaymentRequestView({ uri, payStatus, onClick, payErrMsg }: PaymentRequestViewProps) { let totalFees: AmountJson = Amounts.getZero(payStatus.amountRaw); - let insufficientBalance = false; - const [loading, setLoading] = useState(false); const contractTerms: ContractTerms = payStatus.contractTerms; - if ( - payStatus.status === PreparePayResultType.AlreadyConfirmed - ) { - return - } - if (!contractTerms) { return ( @@ -176,11 +168,6 @@ export function PaymentRequestView({ uri, payStatus, onClick, payErrMsg }: Payme ); } - if (payStatus.status == PreparePayResultType.InsufficientBalance) { - insufficientBalance = true; - return
no te alcanza
- } - if (payStatus.status === PreparePayResultType.PaymentPossible) { const amountRaw = Amounts.parseOrThrow(payStatus.amountRaw); const amountEffective: AmountJson = Amounts.parseOrThrow( @@ -197,14 +184,17 @@ export function PaymentRequestView({ uri, payStatus, onClick, payErrMsg }: Payme } const [showQR, setShowQR] = useState(false) - const privateUri = `${uri}&n=${payStatus.noncePriv}` + const privateUri = payStatus.status !== PreparePayResultType.AlreadyConfirmed ? `${uri}&n=${payStatus.noncePriv}` : uri return

{i18n.str`Digital cash payment`}

- + {payStatus.status === PreparePayResultType.InsufficientBalance ? + : + + } {Amounts.isNonZero(totalFees) && } @@ -213,37 +203,43 @@ export function PaymentRequestView({ uri, payStatus, onClick, payErrMsg }: Payme
{showQR &&
- or click here to pay with a installed wallet + Scan the QR code or click here
}
{payErrMsg ? (

Payment failed: {payErrMsg}

-
) : ( - - - setShowQR(qr => !qr)} - > + payStatus.status === PreparePayResultType.PaymentPossible ? + setShowQR(qr => !qr)}> {!showQR ? i18n.str`Complete with mobile wallet` : i18n.str`Hide QR`} - onReview(true)} - > + {i18n.str`Confirm payment`} - + : ( + payStatus.status === PreparePayResultType.InsufficientBalance ? + setShowQR(qr => !qr)}> + {!showQR ? i18n.str`Pay with other device` : i18n.str`Hide QR`} + + + {i18n.str`No enough coins`} + + : + + {payStatus.contractTerms.fulfillment_message &&
+ {payStatus.contractTerms.fulfillment_message} +
} + + {i18n.str`Already paid`} + +
+ + ) )}
-- cgit v1.2.3