/*
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 { TranslatedString } from "@gnu-taler/taler-util";
import { Attention, useTranslationContext } from "@gnu-taler/web-util/browser";
import { Fragment, VNode, h } from "preact";
import { Transactions } from "../../components/Transactions/index.js";
import { useBankState } from "../../hooks/bank-state.js";
import { usePreferences } from "../../hooks/preferences.js";
import { PaymentOptions } from "../PaymentOptions.js";
import { State } from "./index.js";
import { RouteDefinition } from "@gnu-taler/web-util/browser";
export function InvalidIbanView({ error }: State.InvalidIban) {
return (
Payto from server is not valid "{error.payto_uri}"
);
}
const IS_PUBLIC_ACCOUNT_ENABLED = false;
function ShowDemoInfo({
routePublicAccounts,
}: {
routePublicAccounts: RouteDefinition;
}): VNode {
const { i18n } = useTranslationContext();
const [settings, updateSettings] = usePreferences();
if (!settings.showDemoDescription) return ;
return (
{
updateSettings("showDemoDescription", false);
}}
>
{IS_PUBLIC_ACCOUNT_ENABLED ? (
This part of the demo shows how a bank that supports Taler directly
would work. In addition to using your own bank account, you can also
see the transaction history of some{" "}
Public Accounts
.
) : (
This part of the demo shows how a bank that supports Taler directly
would work.
)}
);
}
function ShowPedingOperation({
routeSolveSecondFactor,
}: {
routeSolveSecondFactor: RouteDefinition;
}): VNode {
const { i18n } = useTranslationContext();
const [bankState, updateBankState] = useBankState();
if (!bankState.currentChallenge) return ;
const title = ((op): TranslatedString => {
switch (op) {
case "delete-account":
return i18n.str`Pending account delete operation`;
case "update-account":
return i18n.str`Pending account update operation`;
case "update-password":
return i18n.str`Pending password update operation`;
case "create-transaction":
return i18n.str`Pending transaction operation`;
case "confirm-withdrawal":
return i18n.str`Pending withdrawal operation`;
case "create-cashout":
return i18n.str`Pending cashout operation`;
}
})(bankState.currentChallenge.operation);
return (
{
updateBankState("currentChallenge", undefined);
}}
>
You can complete or cancel the operation in
{" "}
this page
);
}
export function ReadyView({
tab,
account,
routeChargeWallet,
routeWireTransfer,
limit,
balance,
routeCashout,
routeCreateWireTransfer,
routePublicAccounts,
routeOperationDetails,
routeSolveSecondFactor,
onClose,
routeClose,
onOperationCreated,
onAuthorizationRequired,
}: State.Ready): VNode {
return (
);
}