Form with children
In this example, we pass a children function to gain control over the Form UI.
const schema = z.object({
csrfToken: z.string().min(1),
firstName: z.string().min(1),
email: z.string().min(1).email(),
howYouFoundOutAboutUs: z.enum(['fromAFriend', 'google']),
message: z.string().optional(),
})
export default () => (
<Form schema={schema}>
{({ Field, Errors, Button }) => (
<>
<Field name="csrfToken" value="abc123" hidden />
<Field name="firstName" placeholder="Your first name" />
<Field name="email" label="E-mail" placeholder="Your e-mail" />
<em>You'll hear from us at this address ๐๐ฝ</em>
<Field
name="howYouFoundOutAboutUs"
options={[
{ name: 'Friend', value: 'fromAFriend' },
{ name: 'Search', value: 'google' },
]}
radio
/>
<Field name="message" multiline placeholder="Your message" />
<Errors />
<Button />
</>
)}
</Form>
)
Form with children
In this example, we pass a children function to gain control over the Form UI.
const schema = z.object({
csrfToken: z.string().min(1),
firstName: z.string().min(1),
email: z.string().min(1).email(),
howYouFoundOutAboutUs: z.enum(['fromAFriend', 'google']),
message: z.string().optional(),
})
export default () => (
<Form schema={schema}>
{({ Field, Errors, Button }) => (
<>
<Field name="csrfToken" value="abc123" hidden />
<Field name="firstName" placeholder="Your first name" />
<Field name="email" label="E-mail" placeholder="Your e-mail" />
<em>You'll hear from us at this address ๐๐ฝ</em>
<Field
name="howYouFoundOutAboutUs"
options={[
{ name: 'Friend', value: 'fromAFriend' },
{ name: 'Search', value: 'google' },
]}
radio
/>
<Field name="message" multiline placeholder="Your message" />
<Errors />
<Button />
</>
)}
</Form>
)