/*
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 { Amounts, ExchangeTosStatus } from "@gnu-taler/taler-util";
import { Fragment, h, VNode } from "preact";
import { useState } from "preact/hooks";
import { Amount } from "../../components/Amount.js";
import { Part } from "../../components/Part.js";
import { QR } from "../../components/QR.js";
import { SelectList } from "../../components/SelectList.js";
import { Input, LinkSuccess, SvgIcon, WarningBox } from "../../components/styled/index.js";
import { TermsOfService } from "../../components/TermsOfService/index.js";
import { useTranslationContext } from "@gnu-taler/web-util/browser";
import { Button } from "../../mui/Button.js";
import editIcon from "../../svg/edit_24px.inline.svg";
import {
ExchangeDetails,
getAmountWithFee,
WithdrawDetails,
} from "../../wallet/Transaction.js";
import { State } from "./index.js";
import { Grid } from "../../mui/Grid.js";
import { AmountField } from "../../components/AmountField.js";
export function FinalStateOperation(state: State.AlreadyCompleted): VNode {
const { i18n } = useTranslationContext();
switch (state.operationState) {
case "confirmed": return
This operation has already been completed by another wallet.
case "aborted": return
This operation has already been aborted
case "selected": return
This operation has already been used by another wallet.
}
}
export function SuccessView(state: State.Success): VNode {
const { i18n } = useTranslationContext();
// const currentTosVersionIsAccepted =
// state.currentExchange.tosStatus === ExchangeTosStatus.Accepted;
return (
{state.talerWithdrawUri ? (
) : undefined}
);
}
function WithdrawWithMobile({
talerWithdrawUri,
}: {
talerWithdrawUri: string;
}): VNode {
const { i18n } = useTranslationContext();
const [showQR, setShowQR] = useState(false);
return (
setShowQR((qr) => !qr)}>
{!showQR ? i18n.str`Withdraw to a mobile phone` : i18n.str`Hide QR`}
{showQR && (
)}
);
}
export function SelectAmountView({
currency,
amount,
exchangeBaseUrl,
confirm,
}: State.SelectAmount): VNode {
const { i18n } = useTranslationContext();
return (
Exchange
}
text={}
kind="neutral"
big
/>
);
}