From 635d710203bd88843ba16bbee7ab43ad02d295ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Bl=C3=A4ttler?= Date: Wed, 22 May 2024 21:12:37 +0200 Subject: convert token family duration --- .../instance/tokenfamilies/update/UpdatePage.tsx | 31 ++++++++++++++++------ 1 file changed, 23 insertions(+), 8 deletions(-) (limited to 'packages/merchant-backoffice-ui/src/paths/instance/tokenfamilies') diff --git a/packages/merchant-backoffice-ui/src/paths/instance/tokenfamilies/update/UpdatePage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/tokenfamilies/update/UpdatePage.tsx index 7ad18c01b..184e37b9c 100644 --- a/packages/merchant-backoffice-ui/src/paths/instance/tokenfamilies/update/UpdatePage.tsx +++ b/packages/merchant-backoffice-ui/src/paths/instance/tokenfamilies/update/UpdatePage.tsx @@ -30,20 +30,29 @@ import { Input } from "../../../../components/form/Input.js"; import { InputDate } from "../../../../components/form/InputDate.js"; import { InputDuration } from "../../../../components/form/InputDuration.js"; import { AsyncButton } from "../../../../components/exception/AsyncButton.js"; -import { TalerMerchantApi } from "@gnu-taler/taler-util"; +import { Duration, TalerMerchantApi } from "@gnu-taler/taler-util"; -type Entity = TalerMerchantApi.TokenFamilyUpdateRequest; +type Entity = Omit & { + duration: Duration, +}; interface Props { - onUpdate: (d: Entity) => Promise; + onUpdate: (d: TalerMerchantApi.TokenFamilyUpdateRequest) => Promise; onBack?: () => void; - tokenFamily: Entity; + tokenFamily: TalerMerchantApi.TokenFamilyUpdateRequest; +} + +function convert(from: TalerMerchantApi.TokenFamilyUpdateRequest) { + const { duration, ...rest } = from; + + const converted = { + duration: Duration.fromTalerProtocolDuration(duration), + }; + return { ...converted, ...rest }; } export function UpdatePage({ onUpdate, onBack, tokenFamily }: Props) { - const [value, valueHandler] = useState>({ - ...tokenFamily, - }); + const [value, valueHandler] = useState>(convert(tokenFamily)); let errors: FormErrors = {}; try { @@ -67,7 +76,13 @@ export function UpdatePage({ onUpdate, onBack, tokenFamily }: Props) { const submitForm = () => { if (hasErrors) return Promise.reject(); - return onUpdate(value as Entity); + const { duration, ...rest } = value as Required; + const result: TalerMerchantApi.TokenFamilyUpdateRequest = { + ...rest, + duration: Duration.toTalerProtocolDuration(duration), + }; + + return onUpdate(result); } const { i18n } = useTranslationContext(); -- cgit v1.2.3