ready site
This commit is contained in:
4
lib/config.ts
Normal file
4
lib/config.ts
Normal file
@ -0,0 +1,4 @@
|
||||
export const TELEGRAM_CONFIG = {
|
||||
BOT_TOKEN: '7802786776:AAGQGYf2BxuBFmZOhRcLTX52KnUEYifTKZY',
|
||||
CHAT_ID: '-1002321880357',
|
||||
};
|
31
lib/telegram.ts
Normal file
31
lib/telegram.ts
Normal 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
37
lib/utils.ts
Normal 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);
|
||||
}
|
Reference in New Issue
Block a user