// Example using Formik and Yup
import { Formik, Form, Field, ErrorMessage } from 'formik';
import * as Yup from 'yup';
const validationSchema = Yup.object({
name: Yup.string().required('Name is required'),
email: Yup.string().email('Invalid email').required('Email is required'),
});
// Formik usage
<Formik
initialValues={{ name: '', email: '' }}
validationSchema={validationSchema}
onSubmit={(values) => {
// Handle form submission
}}
>
<Form>
<div>
<label htmlFor="name">Name</label>
<Field type="text" id="name" name="name" />
<ErrorMessage name="name" />
</div>
<div>
<label htmlFor="email">Email</label>
<Field type="email" id="email" name="email" />
<ErrorMessage name="email" />
</div>
<button type="submit">Submit</button>
</Form>
</Formik>
// Example with custom validation using Formik and Yup
const validationSchema = Yup.object({
password: Yup.string()
.required('Password is required')
.min(8, 'Password must be at least 8 characters'),
confirmPassword: Yup.string()
.oneOf([Yup.ref('password'), null], 'Passwords must match')
.required('Confirm Password is required'),
});
// Formik usage
<Formik
initialValues={{ password: '', confirmPassword: '' }}
validationSchema={validationSchema}
onSubmit={(values) => {
// Handle form submission
}}
>
<Form>
<div>
<label htmlFor="password">Password</label>
<Field type="password" id="password" name="password" />
<ErrorMessage name="password" />
</div>
<div>
<label htmlFor="confirmPassword">Confirm Password</label>
<Field type="password" id="confirmPassword" name="confirmPassword" />
<ErrorMessage name="confirmPassword" />
</div>
<button type="submit">Submit</button>
</Form>
</Formik>
// Example using Formik components with Yup validation
const validationSchema = Yup.object({
age: Yup.number().required('Age is required').min(18, 'Must be at least 18 years old'),
});
// Formik usage
<Formik
initialValues={{ age: '' }}
validationSchema={validationSchema}
onSubmit={(values) => {
// Handle form submission
}}
>
<Form>
<div>
<label htmlFor="age">Age</label>
<Field type="number" id="age" name="age" />
<ErrorMessage name="age" />
</div>
<button type="submit">Submit</button>
</Form>
</Formik>