diff options
Diffstat (limited to 'packages/merchant-backoffice-ui/src/InstanceRoutes.tsx')
-rw-r--r-- | packages/merchant-backoffice-ui/src/InstanceRoutes.tsx | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx b/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx index c3c20bcc4..b5680eabb 100644 --- a/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx +++ b/packages/merchant-backoffice-ui/src/InstanceRoutes.tsx @@ -23,11 +23,12 @@ import { useTranslationContext, HttpError, ErrorType, + GlobalNotificationsBanner, } from "@gnu-taler/web-util/browser"; import { format } from "date-fns"; import { Fragment, FunctionComponent, h, VNode } from "preact"; import { Route, route, Router } from "preact-router"; -import { useCallback, useEffect, useMemo, useState } from "preact/hooks"; +import { useCallback, useEffect, useErrorBoundary, useMemo, useState } from "preact/hooks"; import { Loading } from "./components/exception/loading.js"; import { Menu, NotificationCard } from "./components/menu/index.js"; import { useBackendContext } from "./context/backend.js"; @@ -77,6 +78,7 @@ import { Notification } from "./utils/types.js"; 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"; export enum InstancePaths { error = "/error", @@ -151,7 +153,7 @@ export function InstanceRoutes({ const [token, updateToken] = useBackendInstanceToken(id); const { i18n } = useTranslationContext(); - type GlobalNotifState = (Notification & { to: string }) | undefined; + type GlobalNotifState = (Notification & { to: string | undefined }) | undefined; const [globalNotification, setGlobalNotification] = useState<GlobalNotifState>(undefined); @@ -163,9 +165,8 @@ export function InstanceRoutes({ } onLoginPass() }; - // const updateLoginStatus = (url: string, token?: string) => { - // changeToken(token); - // }; + + const [error] = useErrorBoundary(); const value = useMemo( () => ({ id, token, admin, changeToken }), @@ -264,6 +265,15 @@ export function InstanceRoutes({ /> <KycBanner /> <NotificationCard notification={globalNotification} /> + {error && + <NotificationCard notification={{ + message: "Internal error, please repot", + type: "ERROR", + description: <pre> + {(error instanceof Error ? error.stack : String(error)) as TranslatedString} + </pre> + }} /> + } <Router onChange={(e) => { |