Skip to content

List

Interface

export interface IListField extends CommonField {
    type: 'list';
    options: Fields;
    render?: (v: Fields) => JSX.Element;
    private?: () => Promise<Fields>;
    validation?: Validation<Fields>;
}

Example

{
  type: 'list',
  name: 'list',
  options: [
    [
      {
        type: 'text',
        name: 'info.name',
        validation: z
          .string()
          .min(1, { message: 'Name must be at least 1 character long' })
      },
      // ...
    ]
  ],
  validation: z
    .array(
      z.object({
        info: z.object({
          name: z.string().min(1),
        })
      })
    )
    .min(1, { message: 'Collection must have at least 1 items' })
}