Vitron-Front/app/utils/validation.ts
2026-04-29 01:44:16 +03:30

74 lines
2.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Form validation functions for store creation
export const validateUsername = (username: string): string | null => {
if (!username.trim()) {
return "نام کاربری الزامی است";
}
if (username.length < 3) {
return "نام کاربری باید حداقل ۳ کاراکتر باشد";
}
if (username.length > 30) {
return "نام کاربری نباید بیشتر از ۳۰ کاراکتر باشد";
}
if (!/^[a-zA-Z0-9._]+$/.test(username)) {
return "نام کاربری فقط می‌تواند شامل حروف انگلیسی، اعداد، نقطه و آندرلاین باشد";
}
if (username.startsWith(".") || username.endsWith(".")) {
return "نام کاربری نمی‌تواند با نقطه شروع یا تمام شود";
}
if (username.includes("..")) {
return "نام کاربری نمی‌تواند شامل دو نقطه پشت سر هم باشد";
}
return null;
};
export const validateInstagramId = (instagramId: string): string | null => {
if (!instagramId.trim()) {
return "آیدی اینستاگرام الزامی است";
}
if (instagramId.length < 1) {
return "آیدی اینستاگرام الزامی است";
}
if (instagramId.length > 30) {
return "آیدی اینستاگرام نباید بیشتر از ۳۰ کاراکتر باشد";
}
if (!/^[a-zA-Z0-9._]+$/.test(instagramId)) {
return "آیدی اینستاگرام فقط می‌تواند شامل حروف انگلیسی، اعداد، نقطه و آندرلاین باشد";
}
if (instagramId.startsWith(".") || instagramId.endsWith(".")) {
return "آیدی اینستاگرام نمی‌تواند با نقطه شروع یا تمام شود";
}
if (instagramId.includes("..")) {
return "آیدی اینستاگرام نمی‌تواند شامل دو نقطه پشت سر هم باشد";
}
return null;
};
export const validateStoreName = (storeName: string): string | null => {
if (!storeName.trim()) {
return "نام فروشگاه الزامی است";
}
if (storeName.trim().length < 2) {
return "نام فروشگاه باید حداقل ۲ کاراکتر باشد";
}
if (storeName.trim().length > 50) {
return "نام فروشگاه نباید بیشتر از ۵۰ کاراکتر باشد";
}
return null;
};
export const validateStoreDescription = (
description: string
): string | null => {
if (!description.trim()) {
return "توضیحات فروشگاه الزامی است";
}
if (description.trim().length < 10) {
return "توضیحات فروشگاه باید حداقل ۱۰ کاراکتر باشد";
}
if (description.trim().length > 500) {
return "توضیحات فروشگاه نباید بیشتر از ۵۰۰ کاراکتر باشد";
}
return null;
};