Skip to main content

UseGeneratedForm

useGeneratedForm

This hook is used to create a form from a document and an entity. It will create a form with the fields defined in the document's input type. It will also create a submit handler that will submit the form to the server.

This hook is mostly used internally by the higher-level useDetailPage hook, but can in some cases be useful to use directly.

Example

const { form, submitHandler } = useGeneratedForm({
document: setDraftOrderCustomFieldsDocument,
varName: undefined,
entity: entity,
setValues: entity => {
return {
orderId: entity.id,
input: {
customFields: entity.customFields,
},
};
},
});
Signature
function useGeneratedForm<T extends TypedDocumentNode<any, any>, VarName extends keyof VariablesOf<T> | undefined, E extends Record<string, any> = Record<string, any>>(options: GeneratedFormOptions<T, VarName, E>): void

Parameters

options

parameter
GeneratedFormOptions<T, VarName, E>

GeneratedFormOptions

Options for the useGeneratedForm hook.

Signature
interface GeneratedFormOptions<T extends TypedDocumentNode<any, any>, VarName extends keyof VariablesOf<T> | undefined = 'input', E extends Record<string, any> = Record<string, any>> {
document?: T;
varName?: VarName;
entity: E | null | undefined;
customFieldConfig?: any[];
setValues: (
entity: NonNullable<E>,
) => VarName extends keyof VariablesOf<T> ? VariablesOf<T>[VarName] : VariablesOf<T>;
onSubmit?: (
values: VarName extends keyof VariablesOf<T> ? VariablesOf<T>[VarName] : VariablesOf<T>,
) => void;
}

document

property
T

The document to use to generate the form.

varName

property
VarName

The name of the variable to use in the document.

entity

property
E | null | undefined

The entity to use to generate the form.

customFieldConfig

property
any[]

setValues

property
( entity: NonNullable<E>, ) => VarName extends keyof VariablesOf<T> ? VariablesOf<T>[VarName] : VariablesOf<T>

onSubmit

property
( values: VarName extends keyof VariablesOf<T> ? VariablesOf<T>[VarName] : VariablesOf<T>, ) => void