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