diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet/DestinationSelection.tsx')
-rw-r--r-- | packages/taler-wallet-webextension/src/wallet/DestinationSelection.tsx | 48 |
1 files changed, 14 insertions, 34 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/DestinationSelection.tsx b/packages/taler-wallet-webextension/src/wallet/DestinationSelection.tsx index c584f2aae..ba1a560ef 100644 --- a/packages/taler-wallet-webextension/src/wallet/DestinationSelection.tsx +++ b/packages/taler-wallet-webextension/src/wallet/DestinationSelection.tsx @@ -19,6 +19,7 @@ import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import { styled } from "@linaria/react"; import { Fragment, h, VNode } from "preact"; import { useState } from "preact/hooks"; +import { AmountField } from "../components/AmountField.js"; import { Loading } from "../components/Loading.js"; import { LoadingError } from "../components/LoadingError.js"; import { SelectList } from "../components/SelectList.js"; @@ -32,6 +33,7 @@ import { useTranslationContext } from "../context/translation.js"; import { useAsyncAsHook } from "../hooks/useAsyncAsHook.js"; import { Button } from "../mui/Button.js"; import { Grid } from "../mui/Grid.js"; +import { TextFieldHandler } from "../mui/handlers.js"; import { Paper } from "../mui/Paper.js"; import { TextField } from "../mui/TextField.js"; import { Pages } from "../NavigationBar.js"; @@ -283,11 +285,6 @@ export function DestinationSelectionGetCash({ const [currency, setCurrency] = useState(parsedInitialAmount?.currency); const [amount, setAmount] = useState(parsedInitialAmountValue); - function positiveSetAmount(e: string):void { - const value = Number.parseInt(e, 10); - if (value < 0) return - setAmount(String(value)) - } const { i18n } = useTranslationContext(); const previous1: Contact[] = []; const previous2: Contact[] = [ @@ -326,19 +323,13 @@ export function DestinationSelectionGetCash({ <i18n.Translate>Specify the amount and the origin</i18n.Translate> </h1> <Grid container columns={2} justifyContent="space-between"> - <TextField - label="Amount" - type="number" - min="0" - variant="filled" - error={invalid} + <AmountField + label={<i18n.Translate>Amount</i18n.Translate>} + currency={currency} required - startAdornment={ - <div style={{ padding: "25px 12px 8px 12px" }}>{currency}</div> - } - value={amount} - onChange={(e) => { - setAmount(e); + handler={{ + onInput: async (s) => setAmount(s), + value: amount, }} /> <Button onClick={async () => setCurrency(undefined)}> @@ -431,11 +422,6 @@ export function DestinationSelectionSendCash({ const currency = parsedInitialAmount?.currency; const [amount, setAmount] = useState(parsedInitialAmountValue); - function positiveSetAmount(e: string):void { - const value = Number.parseInt(e, 10); - if (value < 0) return - setAmount(String(value)) - } const { i18n } = useTranslationContext(); const previous1: Contact[] = []; const previous2: Contact[] = [ @@ -474,19 +460,13 @@ export function DestinationSelectionSendCash({ </h1> <div> - <TextField - label="Amount" - type="number" - min="0" - variant="filled" + <AmountField + label={<i18n.Translate>Amount</i18n.Translate>} + currency={currency} required - error={invalid} - startAdornment={ - <div style={{ padding: "25px 12px 8px 12px" }}>{currency}</div> - } - value={amount} - onChange={(e) => { - positiveSetAmount(e); + handler={{ + onInput: async (s) => setAmount(s), + value: amount, }} /> </div> |