diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-04-10 21:20:04 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-04-10 21:20:04 +0200 |
commit | 1956428a34c91e3b5ee1931a4daca1adbbac273c (patch) | |
tree | d550dafcaf15a49cf257276f976dc5f2c8757816 | |
parent | 54b5a9af7f4db523ef4b72a84ce7c5f6ee530cde (diff) |
preliminary retry for refunds
-rw-r--r-- | src/i18n/de.po | 2 | ||||
-rw-r--r-- | src/i18n/en-US.po | 2 | ||||
-rw-r--r-- | src/i18n/fr.po | 2 | ||||
-rw-r--r-- | src/i18n/it.po | 2 | ||||
-rw-r--r-- | src/i18n/sv.po | 2 | ||||
-rw-r--r-- | src/i18n/taler-wallet-webex.pot | 2 | ||||
-rw-r--r-- | src/webex/pages/refund.tsx | 18 |
7 files changed, 21 insertions, 9 deletions
diff --git a/src/i18n/de.po b/src/i18n/de.po index a57ecf7fa..6264e7cd7 100644 --- a/src/i18n/de.po +++ b/src/i18n/de.po @@ -103,7 +103,7 @@ msgstr "Der Händler %1$s möchte einen Vertrag über %2$s mit Ihnen abschließe msgid "The total price is %1$s (plus %2$s fees)." msgstr "" -#: src/webex/pages/confirm-contract.tsx:384 +#: src/webex/pages/confirm-contract.tsx:385 #, c-format msgid "The total price is %1$s." msgstr "" diff --git a/src/i18n/en-US.po b/src/i18n/en-US.po index 098a07207..90705c53f 100644 --- a/src/i18n/en-US.po +++ b/src/i18n/en-US.po @@ -103,7 +103,7 @@ msgstr "" msgid "The total price is %1$s (plus %2$s fees)." msgstr "" -#: src/webex/pages/confirm-contract.tsx:384 +#: src/webex/pages/confirm-contract.tsx:385 #, c-format msgid "The total price is %1$s." msgstr "" diff --git a/src/i18n/fr.po b/src/i18n/fr.po index 93fef374d..97fe0a3bc 100644 --- a/src/i18n/fr.po +++ b/src/i18n/fr.po @@ -103,7 +103,7 @@ msgstr "" msgid "The total price is %1$s (plus %2$s fees)." msgstr "" -#: src/webex/pages/confirm-contract.tsx:384 +#: src/webex/pages/confirm-contract.tsx:385 #, c-format msgid "The total price is %1$s." msgstr "" diff --git a/src/i18n/it.po b/src/i18n/it.po index 93fef374d..97fe0a3bc 100644 --- a/src/i18n/it.po +++ b/src/i18n/it.po @@ -103,7 +103,7 @@ msgstr "" msgid "The total price is %1$s (plus %2$s fees)." msgstr "" -#: src/webex/pages/confirm-contract.tsx:384 +#: src/webex/pages/confirm-contract.tsx:385 #, c-format msgid "The total price is %1$s." msgstr "" diff --git a/src/i18n/sv.po b/src/i18n/sv.po index daec2f839..4ae8d95ce 100644 --- a/src/i18n/sv.po +++ b/src/i18n/sv.po @@ -105,7 +105,7 @@ msgstr "Säljaren %1$s erbjuder följande:" msgid "The total price is %1$s (plus %2$s fees)." msgstr "Det totala priset är %1$s (plus %2$s avgifter).\n" -#: src/webex/pages/confirm-contract.tsx:384 +#: src/webex/pages/confirm-contract.tsx:385 #, fuzzy, c-format msgid "The total price is %1$s." msgstr "Det totala priset är %1$s." diff --git a/src/i18n/taler-wallet-webex.pot b/src/i18n/taler-wallet-webex.pot index 93fef374d..97fe0a3bc 100644 --- a/src/i18n/taler-wallet-webex.pot +++ b/src/i18n/taler-wallet-webex.pot @@ -103,7 +103,7 @@ msgstr "" msgid "The total price is %1$s (plus %2$s fees)." msgstr "" -#: src/webex/pages/confirm-contract.tsx:384 +#: src/webex/pages/confirm-contract.tsx:385 #, c-format msgid "The total price is %1$s." msgstr "" diff --git a/src/webex/pages/refund.tsx b/src/webex/pages/refund.tsx index b2f5948d7..6bc1a136e 100644 --- a/src/webex/pages/refund.tsx +++ b/src/webex/pages/refund.tsx @@ -31,6 +31,8 @@ import * as dbTypes from "../../dbTypes"; import { AmountJson } from "../../amounts"; import * as Amounts from "../../amounts"; +import * as timer from "../../timer"; + import { AmountDisplay } from "../renderHtml"; import * as wxApi from "../wxApi"; @@ -48,7 +50,11 @@ interface RefundStatusViewState { interface RefundDetailProps { purchase: dbTypes.PurchaseRecord; - fullRefundFees: AmountJson; + /** + * Full refund fees (including refreshing) so far, or undefined if no refund + * permission was processed yet + */ + fullRefundFees?: AmountJson; } const RefundDetail = ({purchase, fullRefundFees}: RefundDetailProps) => { @@ -85,7 +91,8 @@ const RefundDetail = ({purchase, fullRefundFees}: RefundDetailProps) => { <div> {hasPending ? <p>Refund pending: <AmountDisplay amount={amountPending} /></p> : null} <p> - Refund received: <AmountDisplay amount={amountDone} /> (refund fees: <AmountDisplay amount={fullRefundFees} />) + Refund received: <AmountDisplay amount={amountDone} />{" "} + (refund fees: {fullRefundFees ? <AmountDisplay amount={fullRefundFees} /> : "??" }) </p> </div> ); @@ -107,6 +114,9 @@ class RefundStatusView extends React.Component<RefundStatusViewProps, RefundStat this.update(); } }); + // Just to be safe: update every second, in case we miss a notification + // from the background page. + timer.after(1000, () => this.update()); } render(): JSX.Element { @@ -138,7 +148,7 @@ class RefundStatusView extends React.Component<RefundStatusViewProps, RefundStat </p> <p>Total amount: <AmountDisplay amount={Amounts.parseOrThrow(purchase.contractTerms.amount)} /></p> {purchase.finished - ? <RefundDetail purchase={purchase} fullRefundFees={this.state.refundFees!} /> + ? <RefundDetail purchase={purchase} fullRefundFees={this.state.refundFees} /> : <p>Purchase not completed.</p>} </div> ); @@ -157,6 +167,8 @@ class RefundStatusView extends React.Component<RefundStatusViewProps, RefundStat } const purchase = await wxApi.getPurchase(contractTermsHash); console.log("got purchase", purchase); + // We got a result, but it might be undefined if not found in DB. + this.setState({ purchase, gotResult: true }); const refundsDone = Object.keys(purchase.refundsDone).map((x) => purchase.refundsDone[x]); if (refundsDone.length) { const refundFees = await wxApi.getFullRefundFees({ refundPermissions: refundsDone }); |