+ {multiCurrency ?
Balance:
{balances.map(b => - {b.available}
)}
+
:
+ Balance: {amountToString(balances[0].available)}
}
}
{list.slice(0, 3).map((tx, i) => (
-
+
))}
}
-
-function TransactionItem(props: { tx: Transaction }): JSX.Element {
- const tx = props.tx;
- switch (tx.type) {
- case TransactionType.Withdrawal:
- return (
-
- );
- case TransactionType.Payment:
- return (
-
- );
- case TransactionType.Refund:
- return (
-
- );
- case TransactionType.Tip:
- return (
-
- );
- case TransactionType.Refresh:
- return (
-
- );
- case TransactionType.Deposit:
- return (
-
- );
- }
-}
-
-function TransactionLayout(props: TransactionLayoutProps): JSX.Element {
- const date = new Date(props.timestamp.t_ms);
- const now = new Date();
- const dateStr = formatDistance(date, now, { addSuffix: true })
- return (
-
-
-
-
- {props.title}
- {props.pending ? (
- (Pending)
- ) : null}
-
- {dateStr}
-
-
-
- );
-}
-
-interface TransactionLayoutProps {
- debitCreditIndicator: "debit" | "credit" | "unknown";
- amount: AmountString | "unknown";
- timestamp: Timestamp;
- title: string;
- id: string;
- subtitle: string;
- iconPath: string;
- pending: boolean;
-}
-
-interface TransactionAmountProps {
- debitCreditIndicator: "debit" | "credit" | "unknown";
- amount: AmountString | "unknown";
- pending: boolean;
-}
-
-function TransactionAmount(props: TransactionAmountProps): JSX.Element {
- const [currency, amount] = props.amount.split(":");
- let sign: string;
- switch (props.debitCreditIndicator) {
- case "credit":
- sign = "+";
- break;
- case "debit":
- sign = "-";
- break;
- case "unknown":
- sign = "";
- }
- return (
-
-
- {sign}
- {amount}
-
- {currency}
-
- );
-}
-
diff --git a/packages/taler-wallet-webextension/src/wallet/History.stories.tsx b/packages/taler-wallet-webextension/src/wallet/History.stories.tsx
index 7db13fef5..32499a264 100644
--- a/packages/taler-wallet-webextension/src/wallet/History.stories.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/History.stories.tsx
@@ -50,7 +50,7 @@ const exampleData = {
withdraw: {
...commonTransaction(),
type: TransactionType.Withdrawal,
- exchangeBaseUrl: 'http://exchange.taler',
+ exchangeBaseUrl: 'http://exchange.demo.taler.net',
withdrawalDetails: {
confirmed: false,
exchangePaytoUris: ['payto://x-taler-bank/bank/account'],
@@ -64,7 +64,7 @@ const exampleData = {
info: {
contractTermsHash: 'ASDZXCASD',
merchant: {
- name: 'the merchant',
+ name: 'Blog',
},
orderId: '2021.167-03NPY6MCYMVGT',
products: [],
@@ -88,7 +88,7 @@ const exampleData = {
tip: {
...commonTransaction(),
type: TransactionType.Tip,
- merchantBaseUrl: 'http://merchant.taler',
+ merchantBaseUrl: 'http://ads.merchant.taler.net/',
} as TransactionTip,
refund: {
...commonTransaction(),
diff --git a/packages/taler-wallet-webextension/src/wallet/History.tsx b/packages/taler-wallet-webextension/src/wallet/History.tsx
index 7f9a9b1a8..2bb59fcdb 100644
--- a/packages/taler-wallet-webextension/src/wallet/History.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/History.tsx
@@ -14,19 +14,14 @@
TALER; see the file COPYING. If not, see
*/
-import { AmountString, Balance, Timestamp, Transaction, TransactionsResponse, TransactionType } from "@gnu-taler/taler-util";
+import { AmountString, Balance, Transaction, TransactionsResponse } from "@gnu-taler/taler-util";
import { format } from "date-fns";
-import { Fragment, JSX, h } from "preact";
+import { Fragment, h, JSX } from "preact";
import { useEffect, useState } from "preact/hooks";
-import imageBank from '../../static/img/ri-bank-line.svg';
-import imageHandHeart from '../../static/img/ri-hand-heart-line.svg';
-import imageRefresh from '../../static/img/ri-refresh-line.svg';
-import imageRefund from '../../static/img/ri-refund-2-line.svg';
-import imageShoppingCart from '../../static/img/ri-shopping-cart-line.svg';
-import { Column, ExtraLargeText, HistoryRow, WalletBox, DateSeparator, SmallTextLight } from "../components/styled";
+import { DateSeparator, WalletBox } from "../components/styled";
+import { TransactionItem } from "../components/TransactionItem";
import { useBalances } from "../hooks/useBalances";
import * as wxApi from "../wxApi";
-import { Pages } from "../NavigationBar";
export function HistoryPage(props: any): JSX.Element {
@@ -65,6 +60,8 @@ export function HistoryView({ list, balances }: { list: Transaction[], balances:
return rv;
}, {} as { [x: string]: Transaction[] });
+ const multiCurrency = balances.length > 1
+
return
{balances.length > 0 &&
{balances.length === 1 &&
@@ -81,168 +78,10 @@ export function HistoryView({ list, balances }: { list: Transaction[], balances:
return
{d}
{byDate[d].map((tx, i) => (
-
+
))}
})}
}
-
-function TransactionItem(props: { tx: Transaction }): JSX.Element {
- const tx = props.tx;
- switch (tx.type) {
- case TransactionType.Withdrawal:
- return (
-
- );
- case TransactionType.Payment:
- return (
-
- );
- case TransactionType.Refund:
- return (
-
- );
- case TransactionType.Tip:
- return (
-
- );
- case TransactionType.Refresh:
- return (
-
- );
- case TransactionType.Deposit:
- return (
-
- );
- }
-}
-
-function TransactionLayout(props: TransactionLayoutProps): JSX.Element {
- const date = new Date(props.timestamp.t_ms);
- const dateStr = format(date, 'HH:mm:ss')
- return (
- //
-
-
-
-
- {props.title}
- {props.pending ? (
- (Pending)
- ) : null}
-
- {dateStr}
-
-
-
- //
- );
-}
-
-interface TransactionLayoutProps {
- debitCreditIndicator: "debit" | "credit" | "unknown";
- amount: AmountString | "unknown";
- timestamp: Timestamp;
- title: string;
- id: string;
- subtitle: string;
- iconPath: string;
- pending: boolean;
-}
-
-interface TransactionAmountProps {
- debitCreditIndicator: "debit" | "credit" | "unknown";
- amount: AmountString | "unknown";
- pending: boolean;
-}
-
-function TransactionAmount(props: TransactionAmountProps): JSX.Element {
- const [currency, amount] = props.amount.split(":");
- let sign: string;
- switch (props.debitCreditIndicator) {
- case "credit":
- sign = "+";
- break;
- case "debit":
- sign = "-";
- break;
- case "unknown":
- sign = "";
- }
- return (
-
-
- {sign}
- {amount}
-
- {currency}
-
- );
-}
-