taler-typescript-core

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

commit ff58445b1b6aca53f8735cf9209d2013dcb1b925
parent b04f8d31821d3a9fc8c086c3c164a983c86da75a
Author: Sebastian <sebasjm@taler-systems.com>
Date:   Wed,  3 Dec 2025 17:19:52 -0300

fix #10664

Diffstat:
Mpackages/merchant-backoffice-ui/src/paths/instance/orders/create/CreatePage.tsx | 1+
Mpackages/merchant-backoffice-ui/src/paths/instance/orders/details/DetailPage.tsx | 2+-
Mpackages/merchant-backoffice-ui/src/paths/instance/orders/list/Table.tsx | 43++++++++++++++++++-------------------------
3 files changed, 20 insertions(+), 26 deletions(-)

diff --git a/packages/merchant-backoffice-ui/src/paths/instance/orders/create/CreatePage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/orders/create/CreatePage.tsx @@ -257,6 +257,7 @@ export function CreatePage({ order: { version: OrderVersion.V0, amount: price, + // version: OrderVersion.V1, // choices: [{ // amount: price, // max_fee: value.payments.max_fee as AmountString, diff --git a/packages/merchant-backoffice-ui/src/paths/instance/orders/details/DetailPage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/orders/details/DetailPage.tsx @@ -903,7 +903,7 @@ export function DetailPage({ id, selected, onRefunded, onBack }: Props): VNode { </Fragment> ); } -export function getOrderAmountAndWirefee(order: TalerMerchantApi.CheckPaymentPaidResponse) { +export function getOrderAmountAndWirefee(order: TalerMerchantApi.CheckPaymentPaidResponse | TalerMerchantApi.CheckPaymentPaidResponse) { if (order.contract_terms.version === undefined || order.contract_terms.version === MerchantContractVersion.V0) { const amount = Amounts.parseOrThrow(order.contract_terms.amount) const wireFee = Amounts.parseOrThrow(order.contract_terms.wire_method) diff --git a/packages/merchant-backoffice-ui/src/paths/instance/orders/list/Table.tsx b/packages/merchant-backoffice-ui/src/paths/instance/orders/list/Table.tsx @@ -57,6 +57,7 @@ import { usePreference, } from "../../../../hooks/preference.js"; import { mergeRefunds } from "../../../../utils/amount.js"; +import { getOrderAmountAndWirefee } from "../details/DetailPage.js"; const TALER_SCREEN_ID = 48; @@ -210,9 +211,9 @@ function Table({ {i.timestamp.t_s === "never" ? i18n.str`Never` : format( - new Date(i.timestamp.t_s * 1000), - datetimeFormatForSettings(settings), - )} + new Date(i.timestamp.t_s * 1000), + datetimeFormatForSettings(settings), + )} </td> <td onClick={(): void => onSelect(i)} @@ -311,18 +312,10 @@ export function RefundModal({ const [notification, safeFunctionHandler] = useLocalNotificationBetter(); const { state: session, lib } = useSessionContext(); - let amount: AmountString; + let amount: AmountString | undefined; if (order.order_status === "paid") { - if ( - order.contract_terms.version !== undefined && - order.contract_terms.version !== MerchantContractVersion.V0 - ) { - return ( - <div>Unsupported contract version {order.contract_terms.version}</div> - ); - } - - amount = order.contract_terms.amount; + const orderam = getOrderAmountAndWirefee(order) + amount = typeof orderam === "string" ? undefined : Amounts.stringify(orderam.amount) } const refunds = ( @@ -368,14 +361,14 @@ export function RefundModal({ const req: TalerMerchantApi.RefundRequest | undefined = !form.refund ? undefined : { - refund: Amounts.stringify( - Amounts.add(Amounts.parse(form.refund)!, totalRefunded).amount, - ), - reason: - form.description === undefined - ? form.mainReason || "" - : `${form.mainReason}: ${form.description}`, - }; + refund: Amounts.stringify( + Amounts.add(Amounts.parse(form.refund)!, totalRefunded).amount, + ), + reason: + form.description === undefined + ? form.mainReason || "" + : `${form.mainReason}: ${form.description}`, + }; const refund = safeFunctionHandler( (token: AccessToken, id: string, request: TalerMerchantApi.RefundRequest) => @@ -438,9 +431,9 @@ export function RefundModal({ {r.timestamp.t_s === "never" ? i18n.str`Never` : format( - new Date(r.timestamp.t_s * 1000), - datetimeFormatForSettings(settings), - )} + new Date(r.timestamp.t_s * 1000), + datetimeFormatForSettings(settings), + )} </td> <td>{r.amount}</td> <td>{r.reason}</td>