aboutsummaryrefslogtreecommitdiff
path: root/packages/web-util
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-05-10 11:00:14 -0300
committerSebastian <sebasjm@gmail.com>2024-05-10 11:00:14 -0300
commit224bbb1d99a7f12a95322a4abb6a5e8f05fca68b (patch)
tree9426f4e26666d3f0ec2a0793b22f29439d40ad21 /packages/web-util
parent2375c1c1c8095b4d38dd2afa878705ad3bb216e1 (diff)
downloadwallet-core-224bbb1d99a7f12a95322a4abb6a5e8f05fca68b.tar.xz
fixing time and currency input
Diffstat (limited to 'packages/web-util')
-rw-r--r--packages/web-util/src/forms/InputAbsoluteTime.stories.tsx2
-rw-r--r--packages/web-util/src/forms/InputAmount.tsx29
-rw-r--r--packages/web-util/src/forms/forms.ts15
-rw-r--r--packages/web-util/src/forms/ui-form.ts6
4 files changed, 27 insertions, 25 deletions
diff --git a/packages/web-util/src/forms/InputAbsoluteTime.stories.tsx b/packages/web-util/src/forms/InputAbsoluteTime.stories.tsx
index 0d54c3f69..6b792bfee 100644
--- a/packages/web-util/src/forms/InputAbsoluteTime.stories.tsx
+++ b/packages/web-util/src/forms/InputAbsoluteTime.stories.tsx
@@ -47,7 +47,7 @@ const form: FlexibleForm_Deprecated<TargetObject> = {
design: [{
title: "this is a simple form" as TranslatedString,
fields: [{
- type: "absoluteTime",
+ type: "absoluteTimeText",
properties: {
label: "label of the field" as TranslatedString,
name: "today",
diff --git a/packages/web-util/src/forms/InputAmount.tsx b/packages/web-util/src/forms/InputAmount.tsx
index e8683468e..647d2c823 100644
--- a/packages/web-util/src/forms/InputAmount.tsx
+++ b/packages/web-util/src/forms/InputAmount.tsx
@@ -18,25 +18,26 @@ export function InputAmount<T extends object, K extends keyof T>(
: (value as any).currency;
return (
<InputLine<T, K>
+ {...props}
type="text"
before={{
type: "text",
text: currency as TranslatedString,
}}
- //@ts-ignore
- converter={ props.converter ?? {
-
- fromStringUI: (v): AmountJson => {
- return (
- Amounts.parse(`${currency}:${v}`) ??
- Amounts.zeroOfCurrency(currency)
- );
- },
- toStringUI: (v: AmountJson) => {
- return v === undefined ? "" : Amounts.stringifyValue(v);
- },
- }}
- {...props}
+ //@ts-ignore
+ converter={
+ props.converter ?? {
+ fromStringUI: (v): AmountJson => {
+ return (
+ Amounts.parse(`${currency}:${v}`) ??
+ Amounts.zeroOfCurrency(currency)
+ );
+ },
+ toStringUI: (v: AmountJson) => {
+ return v === undefined ? "" : Amounts.stringifyValue(v);
+ },
+ }
+ }
/>
);
}
diff --git a/packages/web-util/src/forms/forms.ts b/packages/web-util/src/forms/forms.ts
index f2c00083c..cb2ee0145 100644
--- a/packages/web-util/src/forms/forms.ts
+++ b/packages/web-util/src/forms/forms.ts
@@ -31,7 +31,7 @@ type FieldType<T extends object = any, K extends keyof T = any> = {
textArea: Parameters<typeof InputTextArea<T, K>>[0];
choiceStacked: Parameters<typeof InputChoiceStacked<T, K>>[0];
choiceHorizontal: Parameters<typeof InputChoiceHorizontal<T, K>>[0];
- absoluteTime: Parameters<typeof InputAbsoluteTime<T, K>>[0];
+ absoluteTimeText: Parameters<typeof InputAbsoluteTime<T, K>>[0];
integer: Parameters<typeof InputInteger<T, K>>[0];
toggle: Parameters<typeof InputToggle<T, K>>[0];
amount: Parameters<typeof InputAmount<T, K>>[0];
@@ -64,8 +64,8 @@ export type UIFormField =
| { type: "integer"; properties: FieldType["integer"] }
| { type: "toggle"; properties: FieldType["toggle"] }
| {
- type: "absoluteTime";
- properties: FieldType["absoluteTime"];
+ type: "absoluteTimeText";
+ properties: FieldType["absoluteTimeText"];
};
type FieldComponentFunction<key extends keyof FieldType> = (
@@ -89,7 +89,7 @@ const UIFormConfiguration: UIFormFieldMap = {
file: InputFile,
textArea: InputTextArea,
//@ts-ignore
- absoluteTime: InputAbsoluteTime,
+ absoluteTimeText: InputAbsoluteTime,
//@ts-ignore
choiceStacked: InputChoiceStacked,
//@ts-ignore
@@ -194,9 +194,9 @@ export function convertUiField(
},
} as UIFormField;
}
- case "absoluteTime": {
+ case "absoluteTimeText": {
return {
- type: "absoluteTime",
+ type: "absoluteTimeText",
properties: {
...converBaseFieldsProps(i18n_, config),
...converInputFieldsProps(form, config, getConverterById),
@@ -208,7 +208,8 @@ export function convertUiField(
type: "amount",
properties: {
...converBaseFieldsProps(i18n_, config),
- ...converInputFieldsProps(form, config, getConverterById),
+ ...converInputFieldsProps(form, config, getConverterById),
+ currency: config.currency,
},
} as UIFormField;
}
diff --git a/packages/web-util/src/forms/ui-form.ts b/packages/web-util/src/forms/ui-form.ts
index d683b15de..012499d6d 100644
--- a/packages/web-util/src/forms/ui-form.ts
+++ b/packages/web-util/src/forms/ui-form.ts
@@ -50,7 +50,7 @@ export type UIFormElementConfig =
| UIFormFieldToggle;
type UIFormFieldAbsoluteTime = {
- type: "absoluteTime";
+ type: "absoluteTimeText";
max?: TalerProtocolTimestamp;
min?: TalerProtocolTimestamp;
pattern: string;
@@ -196,7 +196,7 @@ const codecForUIFormFieldBaseConfigTemplate = <
const codecForUiFormFieldAbsoluteTime = (): Codec<UIFormFieldAbsoluteTime> =>
codecForUIFormFieldBaseConfigTemplate<UIFormFieldAbsoluteTime>()
- .property("type", codecForConstString("absoluteTime"))
+ .property("type", codecForConstString("absoluteTimeText"))
.property("pattern", codecForString())
.property("max", codecOptional(codecForTimestamp))
.property("min", codecOptional(codecForTimestamp))
@@ -303,7 +303,7 @@ const codecForUiFormField = (): Codec<UIFormElementConfig> =>
.discriminateOn("type")
.alternative("array", codecForLazy(codecForUiFormFieldArray))
.alternative("group", codecForLazy(codecForUiFormFieldGroup))
- .alternative("absoluteTime", codecForUiFormFieldAbsoluteTime())
+ .alternative("absoluteTimeText", codecForUiFormFieldAbsoluteTime())
.alternative("amount", codecForUiFormFieldAmount())
.alternative("caption", codecForUiFormFieldCaption())
.alternative("choiceHorizontal", codecForUiFormFieldChoiceHorizontal())