taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit d6a870e280272c1b9df8df8f0edf03bc508b7178
parent 5c9cf3efbcb5dd46861b7478e97ac9fe840709a0
Author: Sebastian <sebasjm@taler-systems.com>
Date:   Thu,  5 Feb 2026 15:15:32 -0300

fix #10657

Diffstat:
Mpackages/merchant-backoffice-ui/src/components/modal/index.tsx | 2+-
Mpackages/merchant-backoffice-ui/src/paths/instance/update/UpdatePage.tsx | 60++++++++++++++++++++++++++++++++++++++++--------------------
2 files changed, 41 insertions(+), 21 deletions(-)

diff --git a/packages/merchant-backoffice-ui/src/components/modal/index.tsx b/packages/merchant-backoffice-ui/src/components/modal/index.tsx @@ -670,7 +670,7 @@ export function Row({ ); } -function CopyButton({ getContent }: { getContent: () => string }): VNode { +export function CopyButton({ getContent }: { getContent: () => string }): VNode { const [copied, setCopied] = useState(false); function copyText(): void { navigator.clipboard.writeText(getContent() || ""); diff --git a/packages/merchant-backoffice-ui/src/paths/instance/update/UpdatePage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/update/UpdatePage.tsx @@ -22,7 +22,6 @@ import { AccessToken, assertUnreachable, - Duration, HttpStatusCode, TalerMerchantApi, TalerMerchantInstanceHttpClient, @@ -34,7 +33,7 @@ import { useLocalNotificationBetter, useTranslationContext, } from "@gnu-taler/web-util/browser"; -import { VNode, h } from "preact"; +import { h, VNode } from "preact"; import { useState } from "preact/hooks"; import { FormErrors, @@ -42,13 +41,15 @@ import { TalerForm, } from "../../../components/form/FormProvider.js"; import { DefaultInstanceFormFields } from "../../../components/instance/DefaultInstanceFormFields.js"; +import { SolveMFAChallenges } from "../../../components/SolveMFA.js"; import { useSessionContext } from "../../../context/session.js"; import { undefinedIfEmpty } from "../../../utils/table.js"; -import { SolveMFAChallenges } from "../../../components/SolveMFA.js"; +import { CopyButton } from "../../../components/modal/index.js"; const TALER_SCREEN_ID = 75; -export type Entity = TalerMerchantApi.InstanceReconfigurationMessage & TalerForm; +export type Entity = TalerMerchantApi.InstanceReconfigurationMessage & + TalerForm; export interface Props { doUpdate: typeof TalerMerchantInstanceHttpClient.prototype.updateCurrentInstance; @@ -68,12 +69,9 @@ function convert(from: TalerMerchantApi.QueryInstancesResponse): Entity { const defaults: Partial<Entity> = { use_stefan: false, - default_pay_delay: (default_pay_delay), - default_refund_delay: - (default_refund_delay), - default_wire_transfer_delay: ( - default_wire_transfer_delay - ), + default_pay_delay: default_pay_delay, + default_refund_delay: default_refund_delay, + default_wire_transfer_delay: default_wire_transfer_delay, }; return { ...defaults, ...rest } as Entity; } @@ -84,7 +82,7 @@ export function UpdatePage({ selected, onBack, }: Props): VNode { - const { state, config} = useSessionContext(); + const { state, config, lib } = useSessionContext(); const [value, valueHandler] = useState<Partial<Entity>>(convert(selected)); @@ -124,15 +122,13 @@ export function UpdatePage({ ...rest } = value as Required<Entity>; const result: TalerMerchantApi.InstanceReconfigurationMessage = { - default_pay_delay: !default_pay_delay - ? undefined - : (default_pay_delay), + default_pay_delay: !default_pay_delay ? undefined : default_pay_delay, default_refund_delay: !default_refund_delay ? undefined - : (default_refund_delay), + : default_refund_delay, default_wire_transfer_delay: !default_wire_transfer_delay ? undefined - : (default_wire_transfer_delay), + : default_wire_transfer_delay, ...rest, }; const [notification, safeFunctionHandler] = useLocalNotificationBetter(); @@ -191,6 +187,19 @@ export function UpdatePage({ </div> </div> </div> + <div class="level"> + <div class="level-left"> + <div class="level-item"> + <span class="is-size-6"> + <i18n.Translate>URL</i18n.Translate>:{" "} + <b>{lib.instance.baseUrl}</b> + </span> + <div style={{ marginLeft: 10 }}> + <CopyButton getContent={() => lib.instance.baseUrl} /> + </div> + </div> + </div> + </div> </div> </section> @@ -204,15 +213,26 @@ export function UpdatePage({ object={value} valueHandler={valueHandler} > - <DefaultInstanceFormFields showId={false} + <DefaultInstanceFormFields + showId={false} setDefaultPayDelay={() => { - valueHandler( v => ({...v, default_pay_delay: config.default_pay_delay})) + valueHandler((v) => ({ + ...v, + default_pay_delay: config.default_pay_delay, + })); }} setDefaultRefundDelay={() => { - valueHandler( v => ({...v, default_refund_delay: config.default_refund_delay})) + valueHandler((v) => ({ + ...v, + default_refund_delay: config.default_refund_delay, + })); }} setDefaultWireDelay={() => { - valueHandler( v => ({...v, default_wire_transfer_delay: config.default_wire_transfer_delay})) + valueHandler((v) => ({ + ...v, + default_wire_transfer_delay: + config.default_wire_transfer_delay, + })); }} />