/* 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 { ErrorTalerOperation } from "../../components/ErrorTalerOperation.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, Link, LinkSuccess, SubTitle, SuccessBox, SvgIcon, WalletAction, } from "../../components/styled/index.js"; import { useTranslationContext } from "../../context/translation.js"; import { Button } from "../../mui/Button.js"; import { ExchangeDetails, WithdrawDetails } from "../../wallet/Transaction.js"; import { TermsOfServiceSection } from "../TermsOfServiceSection.js"; import { State } from "./index.js"; import editIcon from "../../svg/edit_24px.svg"; import { Amount } from "../../components/Amount.js"; import { QR } from "../../components/QR.js"; import { useState } from "preact/hooks"; export function LoadingUriView({ error }: State.LoadingUriError): VNode { const { i18n } = useTranslationContext(); return ( Could not get the info from the URI } error={error} /> ); } export function LoadingExchangeView({ error, }: State.LoadingExchangeError): VNode { const { i18n } = useTranslationContext(); return ( Could not get exchange} error={error} /> ); } export function LoadingInfoView({ error }: State.LoadingInfoError): VNode { const { i18n } = useTranslationContext(); return ( Could not get info of withdrawal} error={error} /> ); } 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} /> )}
Exchange {/* */} } text={} kind="neutral" big /> Details} text={ } /> {state.ageRestriction && ( Age restriction} list={state.ageRestriction.list} name="age" 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" && ( )}
{state.talerWithdrawUri ? ( ) : undefined}
) : (
Loading terms of service...
)}
Cancel
); } function WithdrawWithMobile({ talerWithdrawUri, }: { talerWithdrawUri: string; }): VNode { const { i18n } = useTranslationContext(); const [showQR, setShowQR] = useState(false); return (
setShowQR((qr) => !qr)}> {!showQR ? ( Withdraw to a mobile phone ) : ( Hide QR )} {showQR && (
Scan the QR code or   click here
)}
); }