diff options
Diffstat (limited to 'packages/exchange-backoffice-ui/src/NiceForm.tsx')
-rw-r--r-- | packages/exchange-backoffice-ui/src/NiceForm.tsx | 13 |
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> ); } |