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

4
lib/config.ts Normal file
View File

@ -0,0 +1,4 @@
export const TELEGRAM_CONFIG = {
BOT_TOKEN: '7802786776:AAGQGYf2BxuBFmZOhRcLTX52KnUEYifTKZY',
CHAT_ID: '-1002321880357',
};

31
lib/telegram.ts Normal file
View File

@ -0,0 +1,31 @@
import { TELEGRAM_CONFIG } from './config';
export async function sendTelegramNotification(phone: string, source: string) {
const text = `🔔 Новая заявка!\n\n📱 Телефон: ${phone}\n📍 Источник: ${source}`;
try {
const response = await fetch(
`https://api.telegram.org/bot${TELEGRAM_CONFIG.BOT_TOKEN}/sendMessage`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
chat_id: TELEGRAM_CONFIG.CHAT_ID,
text: text,
parse_mode: 'HTML',
}),
}
);
if (!response.ok) {
throw new Error('Failed to send Telegram notification');
}
return true;
} catch (error) {
console.error('Error sending Telegram notification:', error);
return false;
}
}

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);
}