aboutsummaryrefslogtreecommitdiff
path: root/packages/exchange-backoffice-ui/src/handlers/forms.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/exchange-backoffice-ui/src/handlers/forms.ts')
-rw-r--r--packages/exchange-backoffice-ui/src/handlers/forms.ts17
1 files changed, 11 insertions, 6 deletions
diff --git a/packages/exchange-backoffice-ui/src/handlers/forms.ts b/packages/exchange-backoffice-ui/src/handlers/forms.ts
index b5d1a2b20..418754919 100644
--- a/packages/exchange-backoffice-ui/src/handlers/forms.ts
+++ b/packages/exchange-backoffice-ui/src/handlers/forms.ts
@@ -3,11 +3,14 @@ import { InputText } from "./InputText.js";
import { InputDate } from "./InputDate.js";
import { InputInteger } from "./InputInteger.js";
import { h as create, Fragment, VNode } from "preact";
-import { InputChoiceStacked } from "./InputChoice.js";
+import { InputChoiceStacked } from "./InputChoiceStacked.js";
import { InputArray } from "./InputArray.js";
import { InputSelectMultiple } from "./InputSelectMultiple.js";
import { InputTextArea } from "./InputTextArea.js";
import { InputFile } from "./InputFile.js";
+import { Separator } from "./Separator.js";
+import { Group } from "./Group.js";
+import { InputSelectOne } from "./InputSelectOne.js";
export type DoubleColumnForm = DoubleColumnFormSection[];
@@ -21,9 +24,11 @@ type DoubleColumnFormSection = {
* Constrain the type with the ui props
*/
type FieldType = {
- separator: {};
+ group: Parameters<typeof Group>[0];
+ separator: Parameters<typeof Separator>[0];
array: Parameters<typeof InputArray>[0];
file: Parameters<typeof InputFile>[0];
+ selectOne: Parameters<typeof InputSelectOne>[0];
selectMultiple: Parameters<typeof InputSelectMultiple>[0];
text: Parameters<typeof InputText>[0];
textArea: Parameters<typeof InputTextArea>[0];
@@ -36,9 +41,11 @@ type FieldType = {
* List all the form fields so typescript can type-check the form instance
*/
export type UIFormField =
+ | { type: "group"; props: FieldType["group"] }
| { type: "separator"; props: FieldType["separator"] }
| { type: "array"; props: FieldType["array"] }
| { type: "file"; props: FieldType["file"] }
+ | { type: "selectOne"; props: FieldType["selectOne"] }
| { type: "selectMultiple"; props: FieldType["selectMultiple"] }
| { type: "text"; props: FieldType["text"] }
| { type: "textArea"; props: FieldType["textArea"] }
@@ -54,14 +61,11 @@ type UIFormFieldMap = {
[key in keyof FieldType]: FieldComponentFunction<key>;
};
-function Separator(): VNode {
- return create("div", {});
-}
-
/**
* Maps input type with component implementation
*/
const UIFormConfiguration: UIFormFieldMap = {
+ group: Group,
separator: Separator,
array: InputArray,
text: InputText,
@@ -70,6 +74,7 @@ const UIFormConfiguration: UIFormFieldMap = {
date: InputDate,
choiceStacked: InputChoiceStacked,
integer: InputInteger,
+ selectOne: InputSelectOne,
selectMultiple: InputSelectMultiple,
};