feat: upgrade to zod v4 & fix z.url() and z.email()

https://zod.dev/v4/changelog?id=zstring-updates
This commit is contained in:
javayhu 2025-08-03 00:32:44 +08:00
parent 8b2f1848a8
commit 89fd7193ac
11 changed files with 11 additions and 11 deletions

View File

@ -9,7 +9,7 @@ const actionClient = createSafeActionClient();
// Newsletter schema for validation
const newsletterSchema = z.object({
email: z.string().email({ message: 'Please enter a valid email address' }),
email: z.email({ message: 'Please enter a valid email address' }),
});
// Create a safe action to check if a user is subscribed to the newsletter

View File

@ -19,7 +19,7 @@ const contactFormSchema = z.object({
.string()
.min(3, { message: 'Name must be at least 3 characters' })
.max(30, { message: 'Name must not exceed 30 characters' }),
email: z.string().email({ message: 'Please enter a valid email address' }),
email: z.email({ message: 'Please enter a valid email address' }),
message: z
.string()
.min(10, { message: 'Message must be at least 10 characters' })

View File

@ -11,7 +11,7 @@ const actionClient = createSafeActionClient();
// Newsletter schema for validation
const newsletterSchema = z.object({
email: z.string().email({ message: 'Please enter a valid email address' }),
email: z.email({ message: 'Please enter a valid email address' }),
});
// Create a safe action for newsletter subscription

View File

@ -10,7 +10,7 @@ const actionClient = createSafeActionClient();
// Newsletter schema for validation
const newsletterSchema = z.object({
email: z.string().email({ message: 'Please enter a valid email address' }),
email: z.email({ message: 'Please enter a valid email address' }),
});
// Create a safe action for newsletter unsubscription

View File

@ -40,7 +40,7 @@ import { useDebounce } from '../utils/performance';
// Form schema for URL input
const urlFormSchema = z.object({
url: z.string().url().optional(), // Allow empty string for initial state
url: z.url().optional(), // Allow empty string for initial state
});
type UrlFormData = z.infer<typeof urlFormSchema>;

View File

@ -32,7 +32,7 @@ export const ForgotPasswordForm = ({ className }: { className?: string }) => {
const searchParams = useSearchParams();
const ForgotPasswordSchema = z.object({
email: z.string().email({
email: z.email({
message: t('emailRequired'),
}),
});

View File

@ -69,7 +69,7 @@ export const LoginForm = ({
: z.string().optional();
const LoginSchema = z.object({
email: z.string().email({
email: z.email({
message: t('emailRequired'),
}),
password: z.string().min(1, {

View File

@ -64,7 +64,7 @@ export const RegisterForm = ({
: z.string().optional();
const RegisterSchema = z.object({
email: z.string().email({
email: z.email({
message: t('emailRequired'),
}),
password: z.string().min(1, {

View File

@ -40,7 +40,7 @@ export function ContactFormCard() {
// Create a schema for contact form validation
const formSchema = z.object({
name: z.string().min(3, t('nameMinLength')).max(30, t('nameMaxLength')),
email: z.string().email(t('emailValidation')),
email: z.email(t('emailValidation')),
message: z
.string()
.min(10, t('messageMinLength'))

View File

@ -29,7 +29,7 @@ export function NewsletterForm() {
// newsletter schema
const NewsletterFormSchema = z.object({
email: z.string().email({
email: z.email({
message: t('emailValidation'),
}),
});

View File

@ -38,7 +38,7 @@ export function WaitlistFormCard() {
// Create a schema for waitlist form validation
const formSchema = z.object({
email: z.string().email({ message: t('emailValidation') }),
email: z.email({ message: t('emailValidation') }),
});
// Initialize the form