diff options
Diffstat (limited to 'packages/bank-ui/src/Routing.tsx')
-rw-r--r-- | packages/bank-ui/src/Routing.tsx | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/packages/bank-ui/src/Routing.tsx b/packages/bank-ui/src/Routing.tsx index 3ec5f0c77..380b267a2 100644 --- a/packages/bank-ui/src/Routing.tsx +++ b/packages/bank-ui/src/Routing.tsx @@ -31,6 +31,7 @@ import { HttpStatusCode, TranslatedString, assertUnreachable, + createRFC8959AccessTokenEncoded } from "@gnu-taler/taler-util"; import { useEffect } from "preact/hooks"; import { useSessionState } from "./hooks/session.js"; @@ -84,7 +85,7 @@ const publicPages = { register: urlPattern(/\/register/, () => "#/register"), publicAccounts: urlPattern(/\/public-accounts/, () => "#/public-accounts"), operationDetails: urlPattern<{ wopid: string }>( - /\/operation\/(?<wopid>[a-zA-Z0-9]+)/, + /\/operation\/(?<wopid>[a-zA-Z0-9-]+)/, ({ wopid }) => `#/operation/${wopid}`, ), solveSecondFactor: urlPattern(/\/2fa/, () => "#/2fa"), @@ -113,13 +114,15 @@ function PublicRounting({ async function doAutomaticLogin(username: string, password: string) { await handleError(async () => { - const resp = await lib.auth(username).createAccessTokenBasic(username, password, { - scope: "readwrite", - duration: { d_us: "forever" }, - refreshable: true, - }); + const resp = await lib + .auth(username) + .createAccessTokenBasic(username, password, { + scope: "readwrite", + duration: { d_us: "forever" }, + refreshable: true, + }); if (resp.type === "ok") { - onLoggedUser(username, resp.body.access_token); + onLoggedUser(username, createRFC8959AccessTokenEncoded(resp.body.access_token)); } else { switch (resp.case) { case HttpStatusCode.Unauthorized: @@ -392,6 +395,9 @@ function PrivateRouting({ routeMyAccountDetails={privatePages.myAccountDetails} routeMyAccountPassword={privatePages.myAccountPassword} routeConversionConfig={privatePages.conversionConfig} + onCashout={() => + navigateTo(privatePages.home.url({})) + } onAuthorizationRequired={() => navigateTo(privatePages.solveSecondFactor.url({})) } @@ -459,6 +465,9 @@ function PrivateRouting({ routeMyAccountDetails={privatePages.myAccountDetails} routeMyAccountPassword={privatePages.myAccountPassword} routeConversionConfig={privatePages.conversionConfig} + onCashout={() => + navigateTo(privatePages.home.url({})) + } onAuthorizationRequired={() => navigateTo(privatePages.solveSecondFactor.url({})) } @@ -513,6 +522,7 @@ function PrivateRouting({ onAuthorizationRequired={() => navigateTo(privatePages.solveSecondFactor.url({})) } + onCashout={() => navigateTo(privatePages.home.url({}))} routeClose={privatePages.home} /> ); |