Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 3x | import { z } from 'zod';
import { VALIDATION, PROFILE_SECTION } from '@/constants/setting';
// Profile form schema
export const profileSchema = z.object({
name: z
.string()
.min(1, VALIDATION.PROFILE.NAME_REQUIRED)
.min(
PROFILE_SECTION.FIELDS.NAME.MIN_LENGTH,
VALIDATION.PROFILE.NAME_MIN_LENGTH
)
.max(
PROFILE_SECTION.FIELDS.NAME.MAX_LENGTH,
VALIDATION.PROFILE.NAME_MAX_LENGTH
),
email: z
.string()
.min(1, VALIDATION.PROFILE.EMAIL_REQUIRED)
.email(VALIDATION.PROFILE.EMAIL_INVALID),
phone: z
.string()
.min(1, VALIDATION.PROFILE.PHONE_REQUIRED)
.regex(/^[+]?[\d\s\-()]+$/, VALIDATION.PROFILE.PHONE_INVALID)
.min(
PROFILE_SECTION.FIELDS.PHONE.MIN_DIGITS,
VALIDATION.PROFILE.PHONE_MIN_DIGITS
),
nationality: z.string().min(1, VALIDATION.PROFILE.NATIONALITY_REQUIRED),
});
export type ProfileFormData = z.infer<typeof profileSchema>;
|