aboutsummaryrefslogtreecommitdiff
path: root/packages/exchange-backoffice-ui/src/NiceForm.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/exchange-backoffice-ui/src/NiceForm.tsx')
-rw-r--r--packages/exchange-backoffice-ui/src/NiceForm.tsx13
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/exchange-backoffice-ui/src/NiceForm.tsx b/packages/exchange-backoffice-ui/src/NiceForm.tsx
index 593a373c1..69b977ee0 100644
--- a/packages/exchange-backoffice-ui/src/NiceForm.tsx
+++ b/packages/exchange-backoffice-ui/src/NiceForm.tsx
@@ -1,5 +1,5 @@
import { useTranslationContext } from "@gnu-taler/web-util/browser";
-import { Fragment, h } from "preact";
+import { ComponentChildren, Fragment, h } from "preact";
import { FlexibleForm } from "./forms/index.js";
import { FormProvider } from "./handlers/FormProvider.js";
import { RenderAllFieldsByUiConfig } from "./handlers/forms.js";
@@ -8,21 +8,25 @@ export function NiceForm<T extends object>({
initial,
onUpdate,
form,
+ onSubmit,
+ children,
}: {
+ children?: ComponentChildren;
initial: Partial<T>;
+ onSubmit?: (v: T) => void;
form: FlexibleForm<T>;
- onUpdate: (d: Partial<T>) => void;
+ onUpdate?: (d: Partial<T>) => void;
}) {
- const { i18n } = useTranslationContext();
return (
<FormProvider
initialValue={initial}
onUpdate={onUpdate}
- onSubmit={() => {}}
+ onSubmit={onSubmit}
computeFormState={form.behavior}
>
<div class="space-y-10 divide-y -mt-5 divide-gray-900/10">
{form.design.map((section, i) => {
+ if (!section) return <Fragment />;
return (
<div class="grid grid-cols-1 gap-x-8 gap-y-8 pt-5 md:grid-cols-3">
<div class="px-4 sm:px-0">
@@ -49,6 +53,7 @@ export function NiceForm<T extends object>({
);
})}
</div>
+ {children}
</FormProvider>
);
}