ready site

This commit is contained in:
Bivekich
2025-02-07 02:17:28 +03:00
parent a390ab919c
commit 9b75339c1e
42 changed files with 11112 additions and 0 deletions

37
lib/utils.ts Normal file
View File

@ -0,0 +1,37 @@
import { type ClassValue, clsx } from 'clsx';
import { twMerge } from 'tailwind-merge';
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
export function formatPhoneNumber(value: string): string {
// Удаляем все нецифровые символы
const phoneNumber = value.replace(/\D/g, '');
// Если номер пустой, возвращаем пустую строку
if (!phoneNumber) return '';
// Форматируем номер в виде +7 (XXX) XXX-XX-XX
if (phoneNumber.length <= 1) return `+7`;
if (phoneNumber.length <= 4) return `+7 (${phoneNumber.slice(1)}`;
if (phoneNumber.length <= 7)
return `+7 (${phoneNumber.slice(1, 4)}) ${phoneNumber.slice(4)}`;
if (phoneNumber.length <= 9)
return `+7 (${phoneNumber.slice(1, 4)}) ${phoneNumber.slice(
4,
7
)}-${phoneNumber.slice(7)}`;
return `+7 (${phoneNumber.slice(1, 4)}) ${phoneNumber.slice(
4,
7
)}-${phoneNumber.slice(7, 9)}-${phoneNumber.slice(9, 11)}`;
}
export function validatePhoneNumber(phone: string): boolean {
// Удаляем все нецифровые символы
const cleanPhone = phone.replace(/\D/g, '');
// Проверяем, что номер начинается с 7 и содержит 11 цифр
return /^7\d{10}$/.test(cleanPhone);
}