/* This file is part of TALER (C) 2016 GNUnet e.V. TALER is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. TALER is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with TALER; see the file COPYING. If not, see */ import { AmountString, Balance, i18n, Transaction, TransactionsResponse, } from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; import { useEffect, useState } from "preact/hooks"; import { ButtonPrimary } from "../components/styled"; import { TransactionItem } from "../components/TransactionItem"; import { useAsyncAsHook } from "../hooks/useAsyncAsHook"; import * as wxApi from "../wxApi"; import { AddNewActionView } from "./AddNewActionView"; export function HistoryPage(): VNode { const [transactions, setTransactions] = useState< TransactionsResponse | undefined >(undefined); const balance = useAsyncAsHook(wxApi.getBalance); const balanceWithoutError = balance?.hasError ? [] : balance?.response.balances || []; useEffect(() => { const fetchData = async (): Promise => { const res = await wxApi.getTransactions(); setTransactions(res); }; fetchData(); }, []); const [addingAction, setAddingAction] = useState(false); if (addingAction) { return setAddingAction(false)} />; } if (!transactions) { return
Loading ...
; } return ( setAddingAction(true)} /> ); } function amountToString(c: AmountString): string { const idx = c.indexOf(":"); return `${c.substring(idx + 1)} ${c.substring(0, idx)}`; } export function HistoryView({ list, balances, onAddNewAction, }: { list: Transaction[]; balances: Balance[]; onAddNewAction: () => void; }): VNode { const multiCurrency = balances.length > 1; return (
{balances.length > 0 ? ( {multiCurrency ? (
Balance:{" "}
    {balances.map((b, i) => (
  • {b.available}
  • ))}
) : (
Balance: {amountToString(balances[0].available)}
)}
) : (
)}
+
{list.length === 0 ? (

You have no history yet, here you will be able to check your last transactions.

) : (
{list.slice(0, 3).map((tx, i) => ( ))}
)}
); }