/* This file is part of GNU Taler (C) 2021 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 */ /** * * @author Sebastian Javier Marchano (sebasjm) */ import { AmountJson, Amounts } from "@gnu-taler/taler-util"; import { VNode, h } from "preact"; import { useEffect, useRef, useState } from "preact/hooks"; import { ErrorMessage } from "../components/ErrorMessage"; import { ButtonPrimary, Input, InputWithLabel, LightText, WalletBox, } from "../components/styled"; export interface Props { error: string | undefined; currency: string | undefined; initialExchange?: string; initialAmount?: string; onExchangeChange: (exchange: string) => void; onCreate: (exchangeBaseUrl: string, amount: AmountJson) => Promise; } export function CreateManualWithdraw({ onExchangeChange, initialExchange, initialAmount, error, currency, onCreate, }: Props): VNode { const [exchange, setExchange] = useState(initialExchange || ""); const [amount, setAmount] = useState(initialAmount || ""); const parsedAmount = Amounts.parse(`${currency}:${amount}`); let timeout = useRef(undefined); useEffect(() => { if (timeout) window.clearTimeout(timeout.current); timeout.current = window.setTimeout(async () => { onExchangeChange(exchange); }, 1000); }, [exchange]); return (

Manual Withdrawal

Choose a exchange to create a reserve and then fill the reserve to withdraw the coins

setExchange(e.currentTarget.value)} /> http://exchange.taler:8081 {currency && (

{currency}
setAmount(e.currentTarget.value)} />
)}

); }