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 | 2x 15x | import { z } from 'zod';
import { VALIDATION, PASSWORD_SECTION } from '@/constants/setting';
// Password form schema
export const passwordSchema = z
.object({
currentPassword: z
.string()
.min(1, VALIDATION.PASSWORD.CURRENT_PASSWORD_REQUIRED),
newPassword: z
.string()
.min(1, VALIDATION.PASSWORD.NEW_PASSWORD_REQUIRED)
.min(
PASSWORD_SECTION.FIELDS.NEW_PASSWORD.MIN_LENGTH,
VALIDATION.PASSWORD.NEW_PASSWORD_MIN_LENGTH
)
.regex(
PASSWORD_SECTION.FIELDS.NEW_PASSWORD.PATTERN,
PASSWORD_SECTION.FIELDS.NEW_PASSWORD.PATTERN_MESSAGE
),
confirmPassword: z
.string()
.min(1, VALIDATION.PASSWORD.CONFIRM_PASSWORD_REQUIRED),
})
.refine(data => data.newPassword === data.confirmPassword, {
message: VALIDATION.PASSWORD.PASSWORDS_MUST_MATCH,
path: ['confirmPassword'],
});
export type PasswordFormData = z.infer<typeof passwordSchema>;
|