import { AmountJson, Amounts } from "@gnu-taler/taler-util"; import { VNode } 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)} />
}

); }