diff options
Diffstat (limited to 'packages/taler-wallet-webextension')
4 files changed, 29 insertions, 17 deletions
diff --git a/packages/taler-wallet-webextension/src/components/AmountField.tsx b/packages/taler-wallet-webextension/src/components/AmountField.tsx index 432aa6af1..c330c72b5 100644 --- a/packages/taler-wallet-webextension/src/components/AmountField.tsx +++ b/packages/taler-wallet-webextension/src/components/AmountField.tsx @@ -24,7 +24,7 @@ import { TranslatedString, } from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; -import { useState } from "preact/hooks"; +import { useEffect, useState } from "preact/hooks"; import { useTranslationContext } from "@gnu-taler/web-util/browser"; import { AmountFieldHandler } from "../mui/handlers.js"; import { TextField } from "../mui/TextField.js"; @@ -56,6 +56,9 @@ export function AmountField({ const previousValue = Amounts.stringifyValue(normal); const [textValue, setTextValue] = useState<string>(previousValue); + useEffect(() => { + setTextValue(previousValue); + }, [previousValue]); function updateUnit(newUnit: number) { setUnit(newUnit); diff --git a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/index.ts b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/index.ts index 7724ec2be..b56fe5523 100644 --- a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/index.ts +++ b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/index.ts @@ -70,7 +70,7 @@ export namespace State { error: undefined; type: Props["type"]; selectCurrency: ButtonHandler; - sendAll: ButtonHandler; + selectMax: ButtonHandler; previous: Contact[]; goToBank: ButtonHandler; goToWallet: ButtonHandler; diff --git a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/state.ts b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/state.ts index e42b1dbf9..a5d44e872 100644 --- a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/state.ts +++ b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/state.ts @@ -14,14 +14,14 @@ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -import { Amounts, TransactionType } from "@gnu-taler/taler-util"; +import { Amounts } from "@gnu-taler/taler-util"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; -import { useEffect, useState } from "preact/hooks"; +import { useTranslationContext } from "@gnu-taler/web-util/browser"; +import { useState } from "preact/hooks"; import { alertFromError, useAlertContext } from "../../context/alert.js"; import { useBackendContext } from "../../context/backend.js"; -import { useTranslationContext } from "@gnu-taler/web-util/browser"; import { useAsyncAsHook } from "../../hooks/useAsyncAsHook.js"; -import { assertUnreachable, RecursiveState } from "../../utils/index.js"; +import { RecursiveState, assertUnreachable } from "../../utils/index.js"; import { Contact, Props, State } from "./index.js"; export function useComponentState(props: Props): RecursiveState<State> { @@ -130,13 +130,16 @@ export function useComponentState(props: Props): RecursiveState<State> { props.goToWalletBankDeposit(currencyAndAmount); }), }, - sendAll: { - onClick: - info === undefined - ? undefined - : pushAlertOnError(async () => { - setAmount(info.balance.balanceMerchantDepositable); - }), + selectMax: { + onClick: pushAlertOnError(async () => { + const resp = await api.wallet.call( + WalletApiOperation.GetMaxDepositAmount, + { + currency: amount.currency, + }, + ); + setAmount(Amounts.parseOrThrow(resp.effectiveAmount)); + }), }, goToWallet: { onClick: invalid @@ -161,7 +164,13 @@ export function useComponentState(props: Props): RecursiveState<State> { setAmount(undefined); }), }, - sendAll: {}, + selectMax: { + onClick: invalid + ? undefined + : pushAlertOnError(async () => { + props.goToWalletManualWithdraw(currencyAndAmount); + }), + }, goToBank: { onClick: invalid ? undefined diff --git a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/views.tsx b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/views.tsx index c230c1490..f8e2c6707 100644 --- a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/views.tsx +++ b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/views.tsx @@ -203,7 +203,7 @@ export function ReadyGetView({ return ( <Container> <h1> - <i18n.Translate>Specify the amount and the origin2</i18n.Translate> + <i18n.Translate>Specify the amount and the origin</i18n.Translate> </h1> <Grid container columns={2} justifyContent="space-between"> <AmountField @@ -287,7 +287,7 @@ export function ReadySendView({ goToBank, goToWallet, previous, - sendAll, + selectMax, }: State.Ready): VNode { const { i18n } = useTranslationContext(); @@ -304,7 +304,7 @@ export function ReadySendView({ handler={amountHandler} /> <EnabledBySettings name="advanceMode"> - <Button onClick={sendAll.onClick}> + <Button onClick={selectMax.onClick}> <i18n.Translate>Send all</i18n.Translate> </Button> </EnabledBySettings> |