From 5a7269b20db0371535669c0faa7f1814d967b5ca Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sat, 31 Aug 2019 11:49:36 +0200 Subject: cli refunds --- src/webex/pages/pay.tsx | 13 +++++++------ src/webex/pages/refund.tsx | 8 ++++++-- src/webex/pages/tip.tsx | 29 +++-------------------------- src/webex/renderHtml.tsx | 25 +++++++++++++++++++++++++ src/webex/wxBackend.ts | 2 +- 5 files changed, 42 insertions(+), 35 deletions(-) (limited to 'src/webex') diff --git a/src/webex/pages/pay.tsx b/src/webex/pages/pay.tsx index d929426c4..1561dd95f 100644 --- a/src/webex/pages/pay.tsx +++ b/src/webex/pages/pay.tsx @@ -30,7 +30,7 @@ import { ExchangeRecord, ProposalDownloadRecord } from "../../dbTypes"; import { ContractTerms } from "../../talerTypes"; import { CheckPayResult, PreparePayResult } from "../../walletTypes"; -import { renderAmount } from "../renderHtml"; +import { renderAmount, ProgressButton } from "../renderHtml"; import * as wxApi from "../wxApi"; import React, { useState, useEffect } from "react"; @@ -44,6 +44,7 @@ function TalerPayDialog({ talerPayUri }: { talerPayUri: string }) { const [payStatus, setPayStatus] = useState(); const [payErrMsg, setPayErrMsg] = useState(""); const [numTries, setNumTries] = useState(0); + const [loading, setLoading] = useState(false); let totalFees: Amounts.AmountJson | undefined = undefined; useEffect(() => { @@ -99,6 +100,7 @@ function TalerPayDialog({ talerPayUri }: { talerPayUri: string }) { const doPayment = async () => { setNumTries(numTries + 1); try { + setLoading(true); const res = await wxApi.confirmPay(payStatus!.proposalId!, undefined); document.location.href = res.nextUrl; } catch (e) { @@ -140,12 +142,11 @@ function TalerPayDialog({ talerPayUri }: { talerPayUri: string }) { ) : (
- +
)} diff --git a/src/webex/pages/refund.tsx b/src/webex/pages/refund.tsx index 6bc1a136e..57d740486 100644 --- a/src/webex/pages/refund.tsx +++ b/src/webex/pages/refund.tsx @@ -188,8 +188,12 @@ async function main() { return; } - const contractTermsHash = query.contractTermsHash; - const refundUrl = query.refundUrl; + const talerRefundUri = query.talerRefundUri; + if (!talerRefundUri) { + console.error("taler refund URI requred"); + return; + } + ReactDOM.render(, container); } diff --git a/src/webex/pages/tip.tsx b/src/webex/pages/tip.tsx index a3f5c38c3..0a066053b 100644 --- a/src/webex/pages/tip.tsx +++ b/src/webex/pages/tip.tsx @@ -29,35 +29,12 @@ import * as i18n from "../../i18n"; import { acceptTip, getReserveCreationInfo, getTipStatus } from "../wxApi"; -import { WithdrawDetailView, renderAmount } from "../renderHtml"; +import { WithdrawDetailView, renderAmount, ProgressButton } from "../renderHtml"; import * as Amounts from "../../amounts"; import { useState, useEffect } from "react"; import { TipStatus } from "../../walletTypes"; -interface LoadingButtonProps { - loading: boolean; -} - -function LoadingButton( - props: - & React.PropsWithChildren - & React.DetailedHTMLProps< - React.ButtonHTMLAttributes, - HTMLButtonElement - >, -) { - return ( -