aboutsummaryrefslogtreecommitdiff
path: root/packages/demobank-ui/src/pages/OperationState/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/demobank-ui/src/pages/OperationState/index.ts')
-rw-r--r--packages/demobank-ui/src/pages/OperationState/index.ts99
1 files changed, 62 insertions, 37 deletions
diff --git a/packages/demobank-ui/src/pages/OperationState/index.ts b/packages/demobank-ui/src/pages/OperationState/index.ts
index 18ffe0ec3..20cb1760f 100644
--- a/packages/demobank-ui/src/pages/OperationState/index.ts
+++ b/packages/demobank-ui/src/pages/OperationState/index.ts
@@ -14,28 +14,46 @@
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { AbsoluteTime, AmountJson, TalerCoreBankErrorsByMethod, TalerError, WithdrawUriResult } from "@gnu-taler/taler-util";
+import {
+ AbsoluteTime,
+ AmountJson,
+ TalerCoreBankErrorsByMethod,
+ TalerError,
+ WithdrawUriResult,
+} from "@gnu-taler/taler-util";
import { Loading, utils } from "@gnu-taler/web-util/browser";
import { ErrorLoadingWithDebug } from "../../components/ErrorLoadingWithDebug.js";
import { useComponentState } from "./state.js";
-import { AbortedView, ConfirmedView, FailedView, InvalidPaytoView, InvalidReserveView, InvalidWithdrawalView, NeedConfirmationView, ReadyView } from "./views.js";
+import {
+ AbortedView,
+ ConfirmedView,
+ FailedView,
+ InvalidPaytoView,
+ InvalidReserveView,
+ InvalidWithdrawalView,
+ NeedConfirmationView,
+ ReadyView,
+} from "./views.js";
+import { RouteDefinition } from "../../route.js";
export interface Props {
currency: string;
- onAuthorizationRequired: () => void,
- onClose: () => void;
+ onAuthorizationRequired: () => void;
+ routeClose: RouteDefinition<Record<string, never>>;
+ onAbort: () => void;
}
-export type State = State.Loading |
- State.LoadingError |
- State.Ready |
- State.Failed |
- State.Aborted |
- State.Confirmed |
- State.InvalidPayto |
- State.InvalidWithdrawal |
- State.InvalidReserve |
- State.NeedConfirmation;
+export type State =
+ | State.Loading
+ | State.LoadingError
+ | State.Ready
+ | State.Failed
+ | State.Aborted
+ | State.Confirmed
+ | State.InvalidPayto
+ | State.InvalidWithdrawal
+ | State.InvalidReserve
+ | State.NeedConfirmation;
export namespace State {
export interface Loading {
@@ -59,48 +77,55 @@ export namespace State {
export interface Ready {
status: "ready";
error: undefined;
- uri: WithdrawUriResult,
- onClose: () => Promise<TalerCoreBankErrorsByMethod<"abortWithdrawalById"> | undefined>;
+ uri: WithdrawUriResult;
+ onAbort: () => Promise<
+ TalerCoreBankErrorsByMethod<"abortWithdrawalById"> | undefined
+ >;
+ routeClose: RouteDefinition<Record<string, never>>;
}
export interface InvalidPayto {
- status: "invalid-payto",
+ status: "invalid-payto";
error: undefined;
payto: string | undefined;
- onClose: () => void;
}
export interface InvalidWithdrawal {
- status: "invalid-withdrawal",
+ status: "invalid-withdrawal";
error: undefined;
- onClose: () => void;
- uri: string,
+ uri: string;
}
export interface InvalidReserve {
- status: "invalid-reserve",
+ status: "invalid-reserve";
error: undefined;
- onClose: () => void;
reserve: string | undefined;
}
export interface NeedConfirmation {
- status: "need-confirmation",
- onAuthorizationRequired: () => void,
- account: string,
- onAbort: undefined | (() => Promise<TalerCoreBankErrorsByMethod<"abortWithdrawalById"> | undefined>);
- onConfirm: undefined | (() => Promise<TalerCoreBankErrorsByMethod<"confirmWithdrawalById"> | undefined>);
+ status: "need-confirmation";
+ onAuthorizationRequired: () => void;
+ account: string;
+ onAbort:
+ | undefined
+ | (() => Promise<
+ TalerCoreBankErrorsByMethod<"abortWithdrawalById"> | undefined
+ >);
+ onConfirm:
+ | undefined
+ | (() => Promise<
+ TalerCoreBankErrorsByMethod<"confirmWithdrawalById"> | undefined
+ >);
error: undefined;
- id: string,
+ id: string;
}
export interface Aborted {
- status: "aborted",
+ status: "aborted";
error: undefined;
- onClose: () => void;
+ routeClose: RouteDefinition<Record<string, never>>;
}
export interface Confirmed {
- status: "confirmed",
+ status: "confirmed";
error: undefined;
- onClose: () => void;
+ routeClose: RouteDefinition<Record<string, never>>;
}
-
}
export interface Transaction {
@@ -113,13 +138,13 @@ export interface Transaction {
const viewMapping: utils.StateViewMap<State> = {
loading: Loading,
- "failed": FailedView,
+ failed: FailedView,
"invalid-payto": InvalidPaytoView,
"invalid-withdrawal": InvalidWithdrawalView,
"invalid-reserve": InvalidReserveView,
"need-confirmation": NeedConfirmationView,
- "aborted": AbortedView,
- "confirmed": ConfirmedView,
+ aborted: AbortedView,
+ confirmed: ConfirmedView,
"loading-error": ErrorLoadingWithDebug,
ready: ReadyView,
};