diff options
author | Sebastian <sebasjm@gmail.com> | 2022-01-25 10:29:29 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2022-01-25 10:29:41 -0300 |
commit | c13f3cf1cd491dfd6371c34e1979a32b3cfe1370 (patch) | |
tree | a1603fa07c43908f85c8dda486e311505c901827 /packages/taler-wallet-webextension | |
parent | a06f7f7cbbbcbe5c3d34fc534c0fb681a009b0fe (diff) |
fix #7162
Diffstat (limited to 'packages/taler-wallet-webextension')
7 files changed, 51 insertions, 51 deletions
diff --git a/packages/taler-wallet-webextension/src/NavigationBar.tsx b/packages/taler-wallet-webextension/src/NavigationBar.tsx index c16bcb53b..9aaeb0d18 100644 --- a/packages/taler-wallet-webextension/src/NavigationBar.tsx +++ b/packages/taler-wallet-webextension/src/NavigationBar.tsx @@ -32,7 +32,7 @@ export enum Pages { welcome = "/welcome", balance = "/balance", - balance_history = "/balance/history/:currency", + balance_history = "/balance/history/:currency?", balance_manual_withdraw = "/balance/manual-withdraw/:currency?", balance_deposit = "/balance/deposit/:currency", balance_transaction = "/balance/transaction/:tid", diff --git a/packages/taler-wallet-webextension/src/cta/Tip.tsx b/packages/taler-wallet-webextension/src/cta/Tip.tsx index 5a9ab720d..3f8b09bd1 100644 --- a/packages/taler-wallet-webextension/src/cta/Tip.tsx +++ b/packages/taler-wallet-webextension/src/cta/Tip.tsx @@ -23,6 +23,7 @@ import { PrepareTipResult } from "@gnu-taler/taler-util"; import { h, VNode } from "preact"; import { useEffect, useState } from "preact/hooks"; +import { Loading } from "../components/Loading"; import { AmountView } from "../renderHtml"; import * as wxApi from "../wxApi"; @@ -105,7 +106,7 @@ export function TipPage({ talerTipUri }: Props): VNode { } if (!prepareTipResult) { - return <span>Loading ...</span>; + return <Loading />; } return ( diff --git a/packages/taler-wallet-webextension/src/popupEntryPoint.tsx b/packages/taler-wallet-webextension/src/popupEntryPoint.tsx index 5169c8540..80e67f881 100644 --- a/packages/taler-wallet-webextension/src/popupEntryPoint.tsx +++ b/packages/taler-wallet-webextension/src/popupEntryPoint.tsx @@ -128,13 +128,6 @@ function Application(): VNode { <Route path={Pages.pending} component={Pending} /> <Route - path={Pages.balance_transaction} - component={({ tid }: { tid: string }) => - goToWalletPage(Pages.balance_transaction.replace(":tid", tid)) - } - /> - - <Route path={Pages.backup} component={BackupPage} onAddProvider={() => { diff --git a/packages/taler-wallet-webextension/src/wallet/ManualWithdrawPage.tsx b/packages/taler-wallet-webextension/src/wallet/ManualWithdrawPage.tsx index 86c3c1456..1f8603794 100644 --- a/packages/taler-wallet-webextension/src/wallet/ManualWithdrawPage.tsx +++ b/packages/taler-wallet-webextension/src/wallet/ManualWithdrawPage.tsx @@ -21,7 +21,6 @@ import { NotificationType, } from "@gnu-taler/taler-util"; import { h, VNode } from "preact"; -import { route } from "preact-router"; import { useState } from "preact/hooks"; import { Loading } from "../components/Loading"; import { LoadingError } from "../components/LoadingError"; @@ -32,7 +31,12 @@ import { CreateManualWithdraw } from "./CreateManualWithdraw"; import { ExchangeAddPage } from "./ExchangeAddPage"; import { ReserveCreated } from "./ReserveCreated"; -export function ManualWithdrawPage({ currency }: { currency?: string }): VNode { +interface Props { + currency?: string; + onCancel: () => void; +} + +export function ManualWithdrawPage({ currency, onCancel }: Props): VNode { const [success, setSuccess] = useState< | { response: AcceptManualWithdrawalResult; @@ -80,9 +84,7 @@ export function ManualWithdrawPage({ currency }: { currency?: string }): VNode { payto={success.response.exchangePaytoUris[0]} exchangeBaseUrl={success.exchangeBaseUrl} amount={success.amount} - onBack={() => { - route(Pages.balance); - }} + onCancel={onCancel} /> ); } diff --git a/packages/taler-wallet-webextension/src/wallet/ReserveCreated.tsx b/packages/taler-wallet-webextension/src/wallet/ReserveCreated.tsx index ae820d8fe..7ccef2daa 100644 --- a/packages/taler-wallet-webextension/src/wallet/ReserveCreated.tsx +++ b/packages/taler-wallet-webextension/src/wallet/ReserveCreated.tsx @@ -9,13 +9,13 @@ export interface Props { payto: string; exchangeBaseUrl: string; amount: AmountJson; - onBack: () => void; + onCancel: () => void; } export function ReserveCreated({ reservePub, payto, - onBack, + onCancel, exchangeBaseUrl, amount, }: Props): VNode { @@ -55,7 +55,7 @@ export function ReserveCreated({ </section> <footer> <div /> - <ButtonDestructive onClick={onBack}> + <ButtonDestructive onClick={onCancel}> Cancel withdrawal </ButtonDestructive> </footer> diff --git a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx index 21bfc943d..423a641a3 100644 --- a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx +++ b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx @@ -26,11 +26,12 @@ import { } from "@gnu-taler/taler-util"; import { differenceInSeconds } from "date-fns"; import { ComponentChildren, Fragment, h, VNode } from "preact"; -import { route } from "preact-router"; import { useState } from "preact/hooks"; import emptyImg from "../../static/img/empty.png"; import { BankDetailsByPaytoType } from "../components/BankDetailsByPaytoType"; import { ErrorTalerOperation } from "../components/ErrorTalerOperation"; +import { Loading } from "../components/Loading"; +import { LoadingError } from "../components/LoadingError"; import { Part } from "../components/Part"; import { Button, @@ -49,7 +50,11 @@ import { useAsyncAsHook } from "../hooks/useAsyncAsHook"; import { Pages } from "../NavigationBar"; import * as wxApi from "../wxApi"; -export function TransactionPage({ tid }: { tid: string }): VNode { +interface Props { + tid: string; + goToWalletHistory: (currency?: string) => void; +} +export function TransactionPage({ tid, goToWalletHistory }: Props): VNode { async function getTransaction(): Promise<Transaction> { const res = await wxApi.getTransactions(); const ts = res.transactions.filter((t) => t.transactionId === tid); @@ -65,43 +70,30 @@ export function TransactionPage({ tid }: { tid: string }): VNode { ]); if (!state) { - return ( - <div> - <i18n.Translate>Loading ...</i18n.Translate> - </div> - ); + return <Loading />; } if (state.hasError) { - route(Pages.balance); return ( - <div> - <i18n.Translate> - There was an error. Redirecting into the history page - </i18n.Translate> - </div> + <LoadingError + title="Could not load the transaction information" + error={state} + /> ); } - function goToHistory(): void { - const currency = - state !== undefined && !state.hasError - ? Amounts.parseOrThrow(state.response.amountRaw).currency - : undefined; - - if (currency) { - route(Pages.balance_history.replace(":currency", currency)); - } else { - route(Pages.balance); - } - } + const currency = Amounts.parse(state.response.amountRaw)?.currency; return ( <TransactionView transaction={state.response} - onDelete={() => wxApi.deleteTransaction(tid).then(goToHistory)} - onRetry={() => wxApi.retryTransaction(tid).then(goToHistory)} - onBack={goToHistory} + onDelete={() => + wxApi.deleteTransaction(tid).then(() => goToWalletHistory(currency)) + } + onRetry={() => + wxApi.retryTransaction(tid).then(() => goToWalletHistory(currency)) + } + onBack={() => goToWalletHistory(currency)} /> ); } diff --git a/packages/taler-wallet-webextension/src/walletEntryPoint.tsx b/packages/taler-wallet-webextension/src/walletEntryPoint.tsx index c8bbc7f7a..629b93fc5 100644 --- a/packages/taler-wallet-webextension/src/walletEntryPoint.tsx +++ b/packages/taler-wallet-webextension/src/walletEntryPoint.tsx @@ -122,12 +122,6 @@ function Application(): VNode { */} <Route - path={Pages.balance} - component={Redirect} - to={Pages.balance_history.replace(":currency", "")} - /> - - <Route path={Pages.balance_history} component={HistoryPage} goToWalletDeposit={(currency: string) => @@ -145,11 +139,22 @@ function Application(): VNode { <Route path={Pages.balance_transaction} component={TransactionPage} + goToWalletHistory={(currency?: string) => { + route( + Pages.balance_history.replace( + ":currency", + currency || "", + ), + ); + }} /> <Route path={Pages.balance_manual_withdraw} component={ManualWithdrawPage} + onCancel={() => { + route(Pages.balance); + }} /> <Route @@ -232,8 +237,15 @@ function Application(): VNode { {/** * NOT FOUND + * all redirects should be at the end */} <Route + path={Pages.balance} + component={Redirect} + to={Pages.balance_history.replace(":currency", "")} + /> + + <Route default component={Redirect} to={Pages.balance_history.replace(":currency", "")} |