/* This file is part of GNU Taler (C) 2022-2024 Taler Systems S.A. GNU 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. GNU 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 GNU Taler; see the file COPYING. If not, see */ import { TalerError } from "@gnu-taler/taler-util"; import { Loading, useTranslationContext } from "@gnu-taler/web-util/browser"; import { Fragment, VNode, h } from "preact"; import { useState } from "preact/hooks"; import { Transactions } from "../components/Transactions/index.js"; import { usePublicAccounts } from "../hooks/account.js"; /** * Show histories of public accounts. */ export function PublicHistoriesPage(): VNode { const { i18n } = useTranslationContext(); // TODO: implemented filter by account name const result = usePublicAccounts(undefined); const firstAccount = result && !(result instanceof TalerError) && result.data.public_accounts.length > 0 ? result.data.public_accounts[0].username : undefined; const [showAccount, setShowAccount] = useState(firstAccount); if (!result) { return ; } if (result instanceof TalerError) { return ; } const { data } = result; const txs: Record = {}; const accountsBar = []; // Ask story of all the public accounts. for (const account of data.public_accounts) { const isSelected = account.username == showAccount; accountsBar.push(
  • setShowAccount(account.username)} > {account.username}
  • , ); txs[account.username] = ( ); } return (

    {i18n.str`History of public accounts`}

      {accountsBar}
    {typeof showAccount !== "undefined" ? ( txs[showAccount] ) : (

    No public transactions found.

    )}
    ); }