summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension')
-rw-r--r--packages/taler-wallet-webextension/src/NavigationBar.tsx2
-rw-r--r--packages/taler-wallet-webextension/src/cta/Tip.tsx3
-rw-r--r--packages/taler-wallet-webextension/src/popupEntryPoint.tsx7
-rw-r--r--packages/taler-wallet-webextension/src/wallet/ManualWithdrawPage.tsx12
-rw-r--r--packages/taler-wallet-webextension/src/wallet/ReserveCreated.tsx6
-rw-r--r--packages/taler-wallet-webextension/src/wallet/Transaction.tsx48
-rw-r--r--packages/taler-wallet-webextension/src/walletEntryPoint.tsx24
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", "")}