import type { Meta, StoryObj } from '@storybook/react'; import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, } from './form'; import { Input } from '../input'; import { Button } from '../button'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import * as z from 'zod'; import React from 'react'; const meta: Meta = { title: 'UI/Form', component: Form, render: args =>
, }; export default meta; type Story = StoryObj; const formSchema = z.object({ username: z.string().min(2, { message: 'Username must be at least 2 characters.', }), email: z.string().email({ message: 'Invalid email address.', }), }); export const Default: Story = { render: () => { const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { username: '', email: '', }, }); function onSubmit(values: z.infer) { console.log(values); } return ( ( Username This is your public display name. )} /> ( Email )} /> ); }, };