aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/wallet/ManageAccount/views.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet/ManageAccount/views.tsx')
-rw-r--r--packages/taler-wallet-webextension/src/wallet/ManageAccount/views.tsx22
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 (