diff options
Diffstat (limited to 'packages/merchant-backoffice-ui/src/InstanceRoutes.tsx')
-rw-r--r-- | packages/merchant-backoffice-ui/src/InstanceRoutes.tsx | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx b/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx index a7fd3eb0f..1f3a2b1f8 100644 --- a/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx +++ b/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx @@ -76,6 +76,7 @@ import { LoginToken, MerchantBackend } from "./declaration.js"; import { Settings } from "./paths/settings/index.js"; import { dateFormatForSettings, useSettings } from "./hooks/useSettings.js"; import { TranslatedString } from "@gnu-taler/taler-util"; +import { useInstanceBankAccounts } from "./hooks/bank.js"; export enum InstancePaths { error = "/error", @@ -170,6 +171,9 @@ export function InstanceRoutes({ [id, token, admin], ); + const instance = useInstanceBankAccounts(); + const accounts = !instance.ok ? undefined : instance.data.accounts; + function ServerErrorRedirectTo(to: InstancePaths | AdminPaths) { return function ServerErrorRedirectToImpl( error: HttpError<MerchantBackend.ErrorDetail>, @@ -247,6 +251,28 @@ export function InstanceRoutes({ updateDefaultToken(undefined) }; + if (accounts !== undefined && !admin && accounts.length < 1) { + return <InstanceContextProvider value={value}> + <Menu + instance={id} + admin={admin} + onShowSettings={() => { + route(InstancePaths.interface) + }} + path={path} + onLogout={clearTokenAndGoToRoot} + setInstanceName={setInstanceName} + isPasswordOk={defaultToken !== undefined} + /> + <NotificationCard notification={{ + type: "INFO", + message: i18n.str`You need to associate a bank account to receive revenue.`, + description: i18n.str`Without this the merchant backend will refuse to create new orders.` + }} /> + <BankAccountCreatePage onConfirm={() => { }} /> + </InstanceContextProvider> + } + return ( <InstanceContextProvider value={value}> <Menu |