diff options
author | Sebastian <sebasjm@gmail.com> | 2023-06-26 14:23:32 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-06-26 14:23:32 -0300 |
commit | 2779086a32a62d6d16b7813c2ca4944dc02c4d93 (patch) | |
tree | 25b367b09ca4d83375e4d24daa4402959d748b1c /packages/taler-wallet-webextension/src/cta/Withdraw/index.ts | |
parent | 87fc6ebf48afc297ed1e2a0fd503a8401c0deb08 (diff) | |
download | wallet-core-2779086a32a62d6d16b7813c2ca4944dc02c4d93.tar.xz |
support for exchange-withdraw call to action, pending use case when the user need to specify the amount
Diffstat (limited to 'packages/taler-wallet-webextension/src/cta/Withdraw/index.ts')
-rw-r--r-- | packages/taler-wallet-webextension/src/cta/Withdraw/index.ts | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/packages/taler-wallet-webextension/src/cta/Withdraw/index.ts b/packages/taler-wallet-webextension/src/cta/Withdraw/index.ts index 45c37ba5c..ae4b3c436 100644 --- a/packages/taler-wallet-webextension/src/cta/Withdraw/index.ts +++ b/packages/taler-wallet-webextension/src/cta/Withdraw/index.ts @@ -16,20 +16,19 @@ import { AmountJson, ExchangeListItem } from "@gnu-taler/taler-util"; import { Loading } from "../../components/Loading.js"; -import { HookError } from "../../hooks/useAsyncAsHook.js"; import { State as SelectExchangeState } from "../../hooks/useSelectedExchange.js"; import { ButtonHandler, SelectFieldHandler } from "../../mui/handlers.js"; -import { compose, StateViewMap } from "../../utils/index.js"; +import { StateViewMap, compose } from "../../utils/index.js"; import { useComponentStateFromParams, useComponentStateFromURI, } from "./state.js"; +import { ErrorAlertView } from "../../components/CurrentAlerts.js"; +import { ErrorAlert } from "../../context/alert.js"; import { ExchangeSelectionPage } from "../../wallet/ExchangeSelection/index.js"; import { NoExchangesView } from "../../wallet/ExchangeSelection/views.js"; -import { SuccessView } from "./views.js"; -import { ErrorAlert } from "../../context/alert.js"; -import { ErrorAlertView } from "../../components/CurrentAlerts.js"; +import { SelectAmountView, SuccessView } from "./views.js"; export interface PropsFromURI { talerWithdrawUri: string | undefined; @@ -38,6 +37,7 @@ export interface PropsFromURI { } export interface PropsFromParams { + talerExchangeWithdrawUri: string; amount: string; cancel: () => Promise<void>; onSuccess: (txid: string) => Promise<void>; @@ -48,6 +48,7 @@ export type State = | State.LoadingUriError | SelectExchangeState.NoExchangeFound | SelectExchangeState.Selecting + | State.SelectAmount | State.Success; export namespace State { @@ -60,6 +61,13 @@ export namespace State { error: ErrorAlert; } + export interface SelectAmount { + status: "select-amount"; + error: undefined; + currentExchange: ExchangeListItem; + currency: string; + } + export type Success = { status: "success"; error: undefined; @@ -84,13 +92,14 @@ export namespace State { const viewMapping: StateViewMap<State> = { loading: Loading, error: ErrorAlertView, + "select-amount": SelectAmountView, "no-exchange-found": NoExchangesView, "selecting-exchange": ExchangeSelectionPage, success: SuccessView, }; export const WithdrawPageFromURI = compose( - "WithdrawPageFromURI", + "WithdrawPageFromURI_Withdraw", (p: PropsFromURI) => useComponentStateFromURI(p), viewMapping, ); |