diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/cta/Deposit/state.ts')
-rw-r--r-- | packages/taler-wallet-webextension/src/cta/Deposit/state.ts | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/packages/taler-wallet-webextension/src/cta/Deposit/state.ts b/packages/taler-wallet-webextension/src/cta/Deposit/state.ts index 77e918ca9..efcef8c28 100644 --- a/packages/taler-wallet-webextension/src/cta/Deposit/state.ts +++ b/packages/taler-wallet-webextension/src/cta/Deposit/state.ts @@ -16,14 +16,20 @@ import { Amounts } from "@gnu-taler/taler-util"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; +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 { wxApi } from "../../wxApi.js"; import { Props, State } from "./index.js"; -export function useComponentState( - { talerDepositUri, amountStr, cancel, onSuccess }: Props, - api: typeof wxApi, -): State { +export function useComponentState({ + talerDepositUri, + amountStr, + cancel, + onSuccess, +}: Props): State { + const api = useBackendContext(); + const { pushAlertOnError } = useAlertContext(); const info = useAsyncAsHook(async () => { if (!talerDepositUri) throw Error("ERROR_NO-URI-FOR-DEPOSIT"); if (!amountStr) throw Error("ERROR_NO-AMOUNT-FOR-DEPOSIT"); @@ -35,12 +41,17 @@ export function useComponentState( }); return { deposit, uri: talerDepositUri, amount }; }); + const { i18n } = useTranslationContext(); if (!info) return { status: "loading", error: undefined }; if (info.hasError) { return { - status: "loading-uri", - error: info, + status: "error", + error: alertFromError( + i18n, + i18n.str`Could not load the status of deposit`, + info, + ), }; } @@ -57,7 +68,7 @@ export function useComponentState( status: "ready", error: undefined, confirm: { - onClick: doDeposit, + onClick: pushAlertOnError(doDeposit), }, fee: Amounts.sub(deposit.totalDepositCost, deposit.effectiveDepositAmount) .amount, |