/* 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 { Fragment, h, VNode } from "preact"; import { State } from "./index.js"; import { useTranslationContext } from "../../context/translation.js"; import { Amount } from "../../components/Amount.js"; import { ErrorTalerOperation } from "../../components/ErrorTalerOperation.js"; import { Loading } from "../../components/Loading.js"; import { LoadingError } from "../../components/LoadingError.js"; import { LogoHeader } from "../../components/LogoHeader.js"; import { Part } from "../../components/Part.js"; import { SelectList } from "../../components/SelectList.js"; import { Input, LinkSuccess, SubTitle, SuccessBox, WalletAction, } from "../../components/styled/index.js"; import { Amounts } from "@gnu-taler/taler-util"; import { TermsOfServiceSection } from "../TermsOfServiceSection.js"; import { Button } from "../../mui/Button.js"; /** * Page shown to the user to confirm creation * of a reserve, usually requested by the bank. * * @author sebasjm */ export function LoadingUriView(state: State.LoadingUri): VNode { const { i18n } = useTranslationContext(); if (!state.hook) return ; return ( Could not get the info from the URI } error={state.hook} /> ); } export function LoadingExchangeView(state: State.LoadingExchange): VNode { const { i18n } = useTranslationContext(); if (!state.hook) return ; return ( Could not get exchange} error={state.hook} /> ); } export function LoadingInfoView(state: State.LoadingInfoError): VNode { const { i18n } = useTranslationContext(); if (!state.hook) return ; return ( Could not get info of withdrawal} error={state.hook} /> ); } export function CompletedView(state: State.Completed): VNode { const { i18n } = useTranslationContext(); return ( Digital cash withdrawal

Withdrawal in process...

You can close the page now. Check your bank if the transaction need a confirmation step to be completed

); } export function SuccessView(state: State.Success): VNode { const { i18n } = useTranslationContext(); return ( Digital cash withdrawal {state.doWithdrawal.error && ( Could not finish the withdrawal operation } error={state.doWithdrawal.error.errorDetail} /> )}
Total to withdraw} text={} kind="positive" /> {Amounts.isNonZero(state.withdrawalFee) && ( Chosen amount} text={} kind="neutral" /> Exchange fee} text={} kind="negative" /> )} Exchange} text={state.exchange.value} kind="neutral" big /> {state.showExchangeSelection ? (
Known exchanges} list={state.exchange.list} value={state.exchange.value} name="switchingExchange" onChange={state.exchange.onChange} />
{state.exchange.isDirty ? ( Confirm exchange selection ) : ( Cancel exchange selection )}
) : ( Edit exchange )}
Age restriction} list={state.ageRestriction.list} name="age" maxWidth value={state.ageRestriction.value} onChange={state.ageRestriction.onChange} />
{state.tosProps && } {state.tosProps ? (
{(state.tosProps.terms.status === "accepted" || (state.mustAcceptFirst && state.tosProps.reviewed)) && ( )} {state.tosProps.terms.status === "notfound" && ( )}
) : (
Loading terms of service...
)}
); }