diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet/ManageAccount/views.tsx')
-rw-r--r-- | packages/taler-wallet-webextension/src/wallet/ManageAccount/views.tsx | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/ManageAccount/views.tsx b/packages/taler-wallet-webextension/src/wallet/ManageAccount/views.tsx index e5be8d17d..75e1feca4 100644 --- a/packages/taler-wallet-webextension/src/wallet/ManageAccount/views.tsx +++ b/packages/taler-wallet-webextension/src/wallet/ManageAccount/views.tsx @@ -15,10 +15,12 @@ */ import { + buildPayto, KnownBankAccountsInfo, PaytoUriBitcoin, PaytoUriIBAN, PaytoUriTalerBank, + stringifyPaytoUri, } from "@gnu-taler/taler-util"; import { styled } from "@linaria/react"; import { Fragment, h, VNode } from "preact"; @@ -411,7 +413,8 @@ function BitcoinAddressAccount({ field }: { field: TextFieldHandler }): VNode { onChange={(v) => { setValue(v); if (!errors && field.onInput) { - field.onInput(`payto://bitcoin/${v}`); + const p = buildPayto("bitcoin", v, undefined); + field.onInput(stringifyPaytoUri(p)); } }} /> @@ -448,8 +451,9 @@ function TalerBankAddressAccount({ disabled={!field.onInput} onChange={(v) => { setHost(v); - if (!errors && field.onInput) { - field.onInput(`payto://x-taler-bank/${v}/${account}`); + if (!errors && field.onInput && account) { + const p = buildPayto("x-taler-bank", v, account); + field.onInput(stringifyPaytoUri(p)); } }} /> @@ -462,8 +466,9 @@ function TalerBankAddressAccount({ error={account !== undefined ? errors?.account : undefined} onChange={(v) => { setAccount(v || ""); - if (!errors && field.onInput) { - field.onInput(`payto://x-taler-bank/${host}/${v}`); + if (!errors && field.onInput && host) { + const p = buildPayto("x-taler-bank", host, v); + field.onInput(stringifyPaytoUri(p)); } }} /> @@ -500,10 +505,9 @@ function IbanAddressAccount({ field }: { field: TextFieldHandler }): VNode { name: string, ): void { if (!errors && field.onInput) { - const path = bic === undefined ? iban : `${bic}/${iban}`; - field.onInput( - `payto://iban/${path}?receiver-name=${encodeURIComponent(name)}`, - ); + const p = buildPayto("iban", iban, bic); + p.params["receiver-name"] = name; + field.onInput(stringifyPaytoUri(p)); } } return ( |