commit 50e07fb0bc73ff8d979063f7ce7840c3d4c809f1 parent a98fb98fa7d6f8d99e578b7f9c705530253f5c56 Author: Sebastian <sebasjm@taler-systems.com> Date: Wed, 22 Jul 2026 15:32:25 -0300 add talerProtocol from millis and use math floor to avoid decimals Diffstat:
4 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/packages/taler-merchant-webui/src/components/form/InputDate.tsx b/packages/taler-merchant-webui/src/components/form/InputDate.tsx @@ -30,6 +30,7 @@ import { usePreference, } from "../../hooks/preference.js"; import { Tooltip } from "../Tooltip.js"; +import { TalerProtocolTimestamp } from "@gnu-taler/taler-util"; const TALER_SCREEN_ID = 7; @@ -163,7 +164,7 @@ export function InputDate<T>({ closeFunction={() => setOpened(false)} dateReceiver={(d) => { if (useProtocolTimestamp) { - onChange({ t_s: d.getTime() / 1000 } as any); + onChange(TalerProtocolTimestamp.fromMilliseconds(d.getTime()) as any); } else { onChange(d as any); } diff --git a/packages/taler-merchant-webui/src/paths/admin/create/CreatePage.tsx b/packages/taler-merchant-webui/src/paths/admin/create/CreatePage.tsx @@ -26,15 +26,13 @@ import { HttpStatusCode, MerchantAuthMethod, opEmptySuccess, - opFixedSuccess, - TalerMerchantApi, + TalerMerchantApi } from "@gnu-taler/taler-util"; import { dummyHttpResponse } from "@gnu-taler/taler-util/http"; import { Button, - useChallengeHandler, useNotificationContext, - useTranslationContext, + useTranslationContext } from "@gnu-taler/web-util/browser"; import { Fragment, h, VNode } from "preact"; import { useState } from "preact/hooks"; @@ -45,6 +43,7 @@ import { import { InputPassword } from "../../../components/form/InputPassword.js"; import { DefaultInstanceFormFields } from "../../../components/instance/DefaultInstanceFormFields.js"; import { Tooltip } from "../../../components/Tooltip.js"; +import { useMerchantChallengeHandlerContext } from "../../../context/challenge.js"; import { useSessionContext } from "../../../context/session.js"; import { EMAIL_REGEX, @@ -53,7 +52,6 @@ import { } from "../../../utils/constants.js"; import { undefinedIfEmpty } from "../../../utils/table.js"; import { FOREVER_REFRESHABLE_TOKEN } from "../../login/index.js"; -import { useMerchantChallengeHandlerContext } from "../../../context/challenge.js"; const TALER_SCREEN_ID = 25; diff --git a/packages/taler-merchant-webui/src/paths/instance/orders/create/CreatePage.tsx b/packages/taler-merchant-webui/src/paths/instance/orders/create/CreatePage.tsx @@ -35,6 +35,7 @@ import { TalerErrorCode, TalerMerchantApi, TalerProtocolDuration, + TalerProtocolTimestamp, assertUnreachable, } from "@gnu-taler/taler-util"; import { @@ -312,7 +313,9 @@ export function CreatePage({ ? Duration.toTalerProtocolDuration(value.payments.auto_refund_delay) : undefined, delivery_date: value.shipping.delivery_date - ? { t_s: value.shipping.delivery_date.getTime() / 1000 } + ? TalerProtocolTimestamp.fromMilliseconds( + value.shipping.delivery_date.getTime(), + ) : undefined, delivery_location: value.shipping.delivery_location, fulfillment_url: value.shipping.fulfillment_url, diff --git a/packages/taler-util/src/time.ts b/packages/taler-util/src/time.ts @@ -140,7 +140,13 @@ export namespace TalerProtocolTimestamp { export function fromSeconds(s: number): TalerProtocolTimestamp { return { - t_s: s, + t_s: Math.floor(s), + }; + } + + export function fromMilliseconds(ms: number): TalerProtocolTimestamp { + return { + t_s: Math.floor(ms / 1000), }; }