/* This file is part of GNU Taler (C) 2022 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 { Logger } from "@gnu-taler/taler-util"; import { 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/access.js"; import { handleNotOkResult } from "./HomePage.js"; import { Loading } from "../components/Loading.js"; const logger = new Logger("PublicHistoriesPage"); interface Props {} /** * Show histories of public accounts. */ export function PublicHistoriesPage({}: Props): VNode { const { i18n } = useTranslationContext(); const result = usePublicAccounts(); const [showAccount, setShowAccount] = useState( result.ok && result.data.publicAccounts.length > 0 ? result.data.publicAccounts[0].accountLabel : undefined, ); if (!result.ok) { return handleNotOkResult(i18n)(result); } const { data } = result; const txs: Record = {}; const accountsBar = []; // Ask story of all the public accounts. for (const account of data.publicAccounts) { logger.trace("Asking transactions for", account.accountLabel); const isSelected = account.accountLabel == showAccount; accountsBar.push(
  • setShowAccount(account.accountLabel)} > {account.accountLabel}
  • , ); txs[account.accountLabel] = ; } return (

    {i18n.str`History of public accounts`}

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

    No public transactions found.

    )}
    Go back
    ); }