74 lines
2.8 KiB
TypeScript
74 lines
2.8 KiB
TypeScript
// 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;
|
||
};
|