Skip to main content

Passing field props via components

import { AutoForm, AutoField, ErrorsField, SubmitField } from 'uniforms-antd';
import { ZodBridge } from 'uniforms-bridge-zod';
import { z } from 'zod';

enum Role {
  Member = 'Member',
  Staff = 'Staff',
}

const userSchema = z.object({
  username: z.string(),
  password: z.string(),
  role: z.nativeEnum(Role),
});

const schema = new ZodBridge({ schema: userSchema });

export default function App() {
  return (
    <AutoForm
      schema={schema}
      onSubmit={model => window.alert(JSON.stringify(model))}
    >
      <AutoField name="username" />
      <AutoField name="password" type="password" />
      <AutoField name="role" checkboxes />
      <ErrorsField />
      <SubmitField />
    </AutoForm>
  );
}