diff options
Diffstat (limited to 'packages/demobank-ui/src/pages/AccountPage/index.ts')
-rw-r--r-- | packages/demobank-ui/src/pages/AccountPage/index.ts | 42 |
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, |