diff options
author | Sebastian <sebasjm@gmail.com> | 2021-10-01 13:08:30 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2021-10-01 13:35:24 -0300 |
commit | 398bd0664b7655f77799ed048c8ca2f5cf23ebaf (patch) | |
tree | 2befdd63cd9457c1f0788c634d6021abc8b3bd27 /packages/taler-wallet-webextension/src/cta/Pay.tsx | |
parent | 5dc9bc1ebb80bd497d386c8cae0c7f6358f8c012 (diff) | |
download | wallet-core-398bd0664b7655f77799ed048c8ca2f5cf23ebaf.tar.xz |
add error message
Diffstat (limited to 'packages/taler-wallet-webextension/src/cta/Pay.tsx')
-rw-r--r-- | packages/taler-wallet-webextension/src/cta/Pay.tsx | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/packages/taler-wallet-webextension/src/cta/Pay.tsx b/packages/taler-wallet-webextension/src/cta/Pay.tsx index e7a3415ac..8e02cf6bb 100644 --- a/packages/taler-wallet-webextension/src/cta/Pay.tsx +++ b/packages/taler-wallet-webextension/src/cta/Pay.tsx @@ -30,7 +30,7 @@ import { useEffect, useState } from "preact/hooks"; import { LogoHeader } from "../components/LogoHeader"; import { Part } from "../components/Part"; import { QR } from "../components/QR"; -import { ButtonSuccess, LinkSuccess, SuccessBox, WalletAction, WarningBox } from "../components/styled"; +import { ButtonSuccess, ErrorBox, LinkSuccess, SuccessBox, WalletAction, WarningBox } from "../components/styled"; import { useBalances } from "../hooks/useBalances"; import * as wxApi from "../wxApi"; @@ -85,7 +85,7 @@ const doPayment = async (payStatus: PreparePayResult): Promise<ConfirmPayResultD export function PayPage({ talerPayUri }: Props): JSX.Element { const [payStatus, setPayStatus] = useState<PreparePayResult | undefined>(undefined); const [payResult, setPayResult] = useState<ConfirmPayResult | undefined>(undefined); - const [payErrMsg, setPayErrMsg] = useState<string | undefined>(""); + const [payErrMsg, setPayErrMsg] = useState<string | undefined>(undefined); const balance = useBalances() const balanceWithoutError = balance?.error ? [] : (balance?.response.balances || []) @@ -96,8 +96,14 @@ export function PayPage({ talerPayUri }: Props): JSX.Element { useEffect(() => { if (!talerPayUri) return; const doFetch = async (): Promise<void> => { - const p = await wxApi.preparePay(talerPayUri); - setPayStatus(p); + try { + const p = await wxApi.preparePay(talerPayUri); + setPayStatus(p); + } catch (e) { + if (e instanceof Error) { + setPayErrMsg(e.message) + } + } }; doFetch(); }, [talerPayUri]); @@ -107,28 +113,23 @@ export function PayPage({ talerPayUri }: Props): JSX.Element { } if (!payStatus) { + if (payErrMsg) { + return <WalletAction> + <LogoHeader /> + <h2> + {i18n.str`Digital cash payment`} + </h2> + <section> + <p>Could not get the payment information for this order</p> + <ErrorBox> + {payErrMsg} + </ErrorBox> + </section> + </WalletAction> + } return <span>Loading payment information ...</span>; } - // if (payResult && payResult.type === ConfirmPayResultType.Done) { - // if (payResult.contractTerms.fulfillment_message) { - // const obj = { - // fulfillment_message: payResult.contractTerms.fulfillment_message, - // fulfillment_message_i18n: - // payResult.contractTerms.fulfillment_message_i18n, - // }; - // const msg = getJsonI18n(obj, "fulfillment_message"); - // return ( - // <div> - // <p>Payment succeeded.</p> - // <p>{msg}</p> - // </div> - // ); - // } else { - // return <span>Redirecting ...</span>; - // } - // } - const onClick = async () => { try { const res = await doPayment(payStatus) @@ -249,7 +250,7 @@ export function PaymentRequestView({ uri, payStatus, onClick, payErrMsg, balance {i18n.str`Digital cash payment`} </h2> {payStatus.status === PreparePayResultType.AlreadyConfirmed && - (payStatus.paid ? <SuccessBox> Already paid </SuccessBox> : <WarningBox> Already confirmed </WarningBox>) + (payStatus.paid ? <SuccessBox> Already paid </SuccessBox> : <WarningBox> Already claimed </WarningBox>) } <section> {payStatus.status !== PreparePayResultType.InsufficientBalance && Amounts.isNonZero(totalFees) && |