From da519af01fd3920b49a05cb3bebf0a9a6194abfc Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 2 May 2023 12:56:09 -0300 Subject: update SPA for #7810 --- .../src/paths/instance/index.stories.ts | 1 + .../create/CreatedSuccessfully.stories.tsx | 85 ++++++++++++-- .../reserves/create/CreatedSuccessfully.tsx | 125 +++++++++++++++------ 3 files changed, 164 insertions(+), 47 deletions(-) (limited to 'packages/merchant-backoffice-ui/src/paths/instance') diff --git a/packages/merchant-backoffice-ui/src/paths/instance/index.stories.ts b/packages/merchant-backoffice-ui/src/paths/instance/index.stories.ts index 50918e131..1d8c76ff9 100644 --- a/packages/merchant-backoffice-ui/src/paths/instance/index.stories.ts +++ b/packages/merchant-backoffice-ui/src/paths/instance/index.stories.ts @@ -16,3 +16,4 @@ export * as details from "./details/stories.js"; export * as kycList from "./kyc/list/ListPage.stories.js"; +export * as reserve from "./reserves/create/CreatedSuccessfully.stories.js"; diff --git a/packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatedSuccessfully.stories.tsx b/packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatedSuccessfully.stories.tsx index 1d848a033..4b634c6c0 100644 --- a/packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatedSuccessfully.stories.tsx +++ b/packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatedSuccessfully.stories.tsx @@ -21,6 +21,7 @@ import { h, VNode, FunctionalComponent } from "preact"; import { CreatedSuccessfully as TestedComponent } from "./CreatedSuccessfully.js"; +import { tests } from "@gnu-taler/web-util/lib/index.browser"; export default { title: "Pages/Reserve/CreatedSuccessfully", @@ -31,16 +32,65 @@ export default { }, }; -function createExample( - Component: FunctionalComponent, - props: Partial, -) { - const r = (args: any) => ; - r.args = props; - return r; -} +export const OneBankAccount = tests.createExample(TestedComponent, { + entity: { + request: { + exchange_url: "http://exchange.taler/", + initial_balance: "TESTKUDOS:1", + wire_method: "x-taler-bank", + }, + response: { + accounts: [ + { + payto_uri: "payto://x-taler-bank/bank.taler:8080/exchange_account", + credit_restrictions: [], + debit_restrictions: [], + master_sig: "asd", + conversion_url: "", + }, + ], + reserve_pub: "WEQWDASDQWEASDADASDQWEQWEASDAS", + }, + }, +}); + +export const ThreeBankAccount = tests.createExample(TestedComponent, { + entity: { + request: { + exchange_url: "http://exchange.taler/", + initial_balance: "TESTKUDOS:1", + wire_method: "x-taler-bank", + }, + response: { + accounts: [ + { + payto_uri: "payto://x-taler-bank/bank.taler:8080/exchange_account", + credit_restrictions: [], + debit_restrictions: [], + master_sig: "asd", + conversion_url: "", + }, + { + payto_uri: "payto://x-taler-bank/bank1.taler:8080/asd", + credit_restrictions: [], + debit_restrictions: [], + master_sig: "asd", + conversion_url: "", + }, + { + payto_uri: "payto://x-taler-bank/bank2.taler:8080/qwe", + credit_restrictions: [], + debit_restrictions: [], + master_sig: "asd", + conversion_url: "", + }, + ], + reserve_pub: "WEQWDASDQWEASDADASDQWEQWEASDAS", + }, + }, +}); -export const Example = createExample(TestedComponent, { +export const NoBankAccount = tests.createExample(TestedComponent, { entity: { request: { exchange_url: "http://exchange.taler/", @@ -48,7 +98,22 @@ export const Example = createExample(TestedComponent, { wire_method: "x-taler-bank", }, response: { - payto_uri: "payto://x-taler-bank/bank.taler:8080/exchange_account", + accounts: [ + { + payto_uri: "payo://x-talr-bank/bank.taler:8080/exchange_account", + credit_restrictions: [], + debit_restrictions: [], + master_sig: "asd", + conversion_url: "", + }, + { + payto_uri: "payto://x-taler-bank", + credit_restrictions: [], + debit_restrictions: [], + master_sig: "asd", + conversion_url: "", + }, + ], reserve_pub: "WEQWDASDQWEASDADASDQWEQWEASDAS", }, }, diff --git a/packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatedSuccessfully.tsx b/packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatedSuccessfully.tsx index b82907122..7ba531a94 100644 --- a/packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatedSuccessfully.tsx +++ b/packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatedSuccessfully.tsx @@ -16,7 +16,7 @@ import { parsePaytoUri, stringifyPaytoUri } from "@gnu-taler/taler-util"; import { useTranslationContext } from "@gnu-taler/web-util/lib/index.browser"; -import { h, VNode } from "preact"; +import { Fragment, h, VNode } from "preact"; import { QR } from "../../../../components/exception/QR.js"; import { CreatedSuccessfully as Template } from "../../../../components/notifications/CreatedSuccessfully.js"; import { MerchantBackend } from "../../../../declaration.js"; @@ -32,18 +32,29 @@ interface Props { onCreateAnother?: () => void; } +function isNotUndefined(x: X | undefined): x is X { + return !!x; +} + export function CreatedSuccessfully({ entity, onConfirm, onCreateAnother, }: Props): VNode { - const p = parsePaytoUri(entity.response.payto_uri); - if (p) { - p.params["message"] = entity.response.reserve_pub; - p.params["amount"] = entity.request.initial_balance; - } + const accountsInfo = !entity.response.accounts + ? [] + : entity.response.accounts + .map((acc) => { + const p = parsePaytoUri(acc.payto_uri); + if (p) { + p.params["message"] = entity.response.reserve_pub; + p.params["amount"] = entity.request.initial_balance; + } + return p; + }) + .filter(isNotUndefined); - const link = !p ? entity.response.payto_uri : stringifyPaytoUri(p); + const links = accountsInfo.map((a) => stringifyPaytoUri(a)); const { i18n } = useTranslationContext(); return ( ); } -- cgit v1.2.3