/*
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";
import { ErrorMessage } from "../../components/ErrorMessage.js";
export function LoadingUriView({ error }: State.LoadingUriError): VNode {
const { i18n } = useTranslationContext();
return (
Could not get the info from the URI
}
error={error}
/>
);
}
export function LoadingInfoView({ error }: State.LoadingInfoError): VNode {
const { i18n } = useTranslationContext();
return (
Could not get info of withdrawal}
error={error}
/>
);
}
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 && (