'use client'; import { useState } from 'react'; import { Phone, Mail, MapPin } from 'lucide-react'; import FadeInSection from './FadeInSection'; const ContactSection = () => { const [name, setName] = useState(''); const [phone, setPhone] = useState(''); const [message, setMessage] = useState(''); const [error, setError] = useState(''); const [success, setSuccess] = useState(false); const [loading, setLoading] = useState(false); const validatePhone = (value: string) => { const digits = value.replace(/\D/g, ''); if (digits.length !== 11) return false; if (!(digits.startsWith('7') || digits.startsWith('8'))) return false; if (/^(7|8)0{10}$/.test(digits)) return false; return true; }; const validateName = (value: string) => { return /^[А-Яа-яA-Za-zЁё\-]{2,}$/.test(value.trim()); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); if (!validateName(name)) return setError('Пожалуйста, укажите корректное имя (только буквы, не менее 2 символов)'); if (!validatePhone(phone)) return setError('Пожалуйста, укажите корректный российский номер телефона'); setLoading(true); try { const res = await fetch('/api/send-telegram', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name, phone, material: 'Контакты', area: '-', finish: '-', finance: '-', message }), }); if (res.ok) { setSuccess(true); setName(''); setPhone(''); setMessage(''); } else { setError('Ошибка отправки. Попробуйте позже.'); } } catch { setError('Ошибка отправки. Попробуйте позже.'); } finally { setLoading(false); } }; return (
{/* Статичный фон */}
{/* Заголовок секции */}

Наши контакты

{/* Контактная информация */} {/* Фон */}

Телефон

7 953 013 24 23

Email

Будет

Адрес

г. Чебоксары, ул. Калинина, 107

Реквизиты

ИП Фомин Александр Вениаминович
ИНН 213012845835

{/* Декоративный элемент */}
{/* Форма обратной связи */} {/* Фон */}

Отправить сообщение

setName(e.target.value)} className="w-full px-4 py-3 rounded-lg bg-white/50 border border-gray-200 focus:border-blue-400 focus:outline-none focus:ring-2 focus:ring-blue-400/20 transition-all duration-300 text-gray-800 placeholder-gray-500" required />
{ const val = e.target.value.replace(/\D/g, '').slice(0, 11); setPhone(val); }} className="w-full px-4 py-3 rounded-lg bg-white/50 border border-gray-200 focus:border-blue-400 focus:outline-none focus:ring-2 focus:ring-blue-400/20 transition-all duration-300 text-gray-800 placeholder-gray-500" required />