update validation
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import * as z from 'zod';
|
||||
//@ts-ignore
|
||||
import validator from 'validator';
|
||||
|
||||
interface FieldConfig {
|
||||
maxSize?: { value: number; message: string };
|
||||
@@ -15,7 +17,7 @@ interface ValidationConfig {
|
||||
[key: string]: FieldConfig;
|
||||
}
|
||||
|
||||
const EMAIL_REGEX = /^([a-z0-9.\-_]+|[а-яё0-9.\-_]+)@(([a-z0-9.\-]+)\.([a-z]{2,})|([a-z0-9.\-]+)\.([а-яё]{2,})|([а-яё0-9.\-]+)\.([a-z]{2,})|([а-яё0-9.\-]+)\.([а-яё]{2,}))$/i;
|
||||
/* const EMAIL_REGEX = /^([a-z0-9.\-_]+|[а-яё0-9.\-_]+)@(([a-z0-9.\-]+)\.([a-z]{2,})|([a-z0-9.\-]+)\.([а-яё]{2,})|([а-яё0-9.\-]+)\.([a-z]{2,})|([а-яё0-9.\-]+)\.([а-яё]{2,}))$/i; */
|
||||
|
||||
export function createValidationSchema(config: ValidationConfig) {
|
||||
const schema: Record<string, any> = {};
|
||||
@@ -64,11 +66,13 @@ export function createValidationSchema(config: ValidationConfig) {
|
||||
);
|
||||
}
|
||||
|
||||
// Валидация email формата (если включено)
|
||||
if (config.email.emailValidation?.value) {
|
||||
emailSchema = emailSchema.refine(
|
||||
(value) => EMAIL_REGEX.test(value),
|
||||
{ message: config.email.emailValidation.message || 'register-error-email-invalid' }
|
||||
(value) => validator.isEmail(value, {
|
||||
allow_utf8_local_part: true,
|
||||
require_tld: true,
|
||||
}),
|
||||
{ message: config.email.emailValidation.message }
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user