summaryrefslogtreecommitdiff
path: root/packages/demobank-ui/src/pages/AccountPage/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/demobank-ui/src/pages/AccountPage/index.ts')
-rw-r--r--packages/demobank-ui/src/pages/AccountPage/index.ts42
1 files changed, 31 insertions, 11 deletions
diff --git a/packages/demobank-ui/src/pages/AccountPage/index.ts b/packages/demobank-ui/src/pages/AccountPage/index.ts
index 115da807d..31a8a9e34 100644
--- a/packages/demobank-ui/src/pages/AccountPage/index.ts
+++ b/packages/demobank-ui/src/pages/AccountPage/index.ts
@@ -14,21 +14,36 @@
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { AbsoluteTime, AmountJson, TalerCorebankApi, TalerError } from "@gnu-taler/taler-util";
+import {
+ AbsoluteTime,
+ AmountJson,
+ TalerCorebankApi,
+ TalerError,
+} from "@gnu-taler/taler-util";
import { Loading, utils } from "@gnu-taler/web-util/browser";
import { ErrorLoadingWithDebug } from "../../components/ErrorLoadingWithDebug.js";
import { LoginForm } from "../LoginForm.js";
import { useComponentState } from "./state.js";
import { InvalidIbanView, ReadyView } from "./views.js";
+import { RouteDefinition } from "../../route.js";
export interface Props {
account: string;
onAuthorizationRequired: () => void;
- goToConfirmOperation: (id: string) => void;
+ onOperationCreated: (wopid: string) => void;
+ onClose: () => void;
+ tab: "charge-wallet" | "wire-transfer" | undefined;
+ routeClose: RouteDefinition<Record<string, never>>;
+ routeChargeWallet: RouteDefinition<Record<string, never>>;
+ routeWireTransfer: RouteDefinition<Record<string, never>>;
}
-export type State = State.Loading |
- State.LoadingError | State.Ready | State.InvalidIban | State.UserNotFound;
+export type State =
+ | State.Loading
+ | State.LoadingError
+ | State.Ready
+ | State.InvalidIban
+ | State.UserNotFound;
export namespace State {
export interface Loading {
@@ -48,21 +63,26 @@ export namespace State {
export interface Ready extends BaseInfo {
status: "ready";
error: undefined;
- account: string,
- limit: AmountJson,
+ account: string;
+ tab: "charge-wallet" | "wire-transfer" | undefined;
+ limit: AmountJson;
onAuthorizationRequired: () => void;
- goToConfirmOperation: (id: string) => void;
+ onOperationCreated: (wopid: string) => void;
+ onClose: () => void;
+ routeClose: RouteDefinition<Record<string, never>>;
+ routeChargeWallet: RouteDefinition<Record<string, never>>;
+ routeWireTransfer: RouteDefinition<Record<string, never>>;
}
export interface InvalidIban {
- status: "invalid-iban",
+ status: "invalid-iban";
error: TalerCorebankApi.AccountData;
}
export interface UserNotFound {
- status: "login",
+ status: "login";
reason: "not-found" | "forbidden";
- onRegister?: () => void;
+ routeRegister?: RouteDefinition<Record<string, never>>;
}
}
@@ -76,7 +96,7 @@ export interface Transaction {
const viewMapping: utils.StateViewMap<State> = {
loading: Loading,
- "login": LoginForm,
+ login: LoginForm,
"invalid-iban": InvalidIbanView,
"loading-error": ErrorLoadingWithDebug,
ready: ReadyView,