Skip to main content

createForm()

function createForm<T>(config): FormBundle<T>;

Defined in: form/form-bundle.ts:250

Собрать модель, форму, уровень формы (проверка, отправка, поток шагов) и дерево для рендера за один проход.

Type Parameters​

T​

T extends object

Форма данных модели.

Parameters​

config​

CreateFormConfig<T>

CreateFormConfig: (initial | model) + опц. schema, registry, behavior, validation, flow, seed, setup.

Returns​

FormBundle<T>

FormBundle — { model, form, render, flow, validate, validateStep, submission, … }.

Examples​

const credit = useFormBundle(() =>
createForm<CreditForm>({
model: createCreditModel(),
schema: creditSchema, // (model) => узел
behavior: creditBehavior,
validation: { extras: crossRules },
flow: { steps: [{ id: 'loan', rules: loanRules }, { id: 'confirm' }] },
})
);
return <FormRenderer form={credit} settings={{ fieldWrapper: FormField }} />;
const credit = useFormBundle(() => createForm<CreditForm>({ initial, schema: creditSchema }));
const send = async () => {
const result = await credit.submission.submit(api.send);
if (result.status === 'invalid') showHint('Проверьте форму');
};
return <FormField control={credit.form.loanType} />;
const credit = useFormBundle(() =>
createForm<CreditForm>({ model: createCreditModel(), schema: creditJson, registry })
);
return <FormRenderer form={credit} />;