'use client'; import { useState } from 'react'; import { motion } from 'framer-motion'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Phone, CheckCircle2, AlertCircle } from 'lucide-react'; import { formatPhoneNumber, validatePhoneNumber } from '@/lib/utils'; import { sendTelegramNotification } from '@/lib/telegram'; import ContactModal from './ContactModal'; import { cn } from '@/lib/utils'; const Hero = () => { const [phone, setPhone] = useState(''); const [isSubmitted, setIsSubmitted] = useState(false); const [error, setError] = useState(''); const [isLoading, setIsLoading] = useState(false); const [isModalOpen, setIsModalOpen] = useState(false); const handlePhoneChange = (e: React.ChangeEvent) => { const formattedPhone = formatPhoneNumber(e.target.value); setPhone(formattedPhone); setError(''); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!validatePhoneNumber(phone)) { setError('Пожалуйста, введите корректный российский номер телефона'); return; } setIsLoading(true); try { const success = await sendTelegramNotification(phone, 'Главный экран'); if (success) { setIsSubmitted(true); setError(''); setTimeout(() => { setIsSubmitted(false); setPhone(''); }, 3000); } else { setError( 'Произошла ошибка при отправке заявки. Пожалуйста, попробуйте позже.' ); } } catch { setError( 'Произошла ошибка при отправке заявки. Пожалуйста, попробуйте позже.' ); } finally { setIsLoading(false); } }; const containerVariants = { hidden: { opacity: 0 }, visible: { opacity: 1, transition: { staggerChildren: 0.2, }, }, }; const itemVariants = { hidden: { y: 20, opacity: 0 }, visible: { y: 0, opacity: 1, transition: { duration: 0.8, ease: [0.16, 1, 0.3, 1], }, }, }; return (
{/* Фоновый паттерн */}
{/* Заголовок */} Независимая строительно-техническая экспертиза в Москве и Чебоксарах {/* Описание */} Проводим профессиональную экспертизу при заливах, обследование инженерных систем, оценку качества строительных работ и тепловизионное обследование. Гарантируем точность заключений и юридическую поддержку. {/* Форма */}

Получите бесплатную консультацию эксперта

{error && (
{error}
)}

Нажимая кнопку, вы соглашаетесь с{' '} политикой конфиденциальности

{/* Преимущества */}

9+ лет

опыта в экспертизе

500+

выполненных проектов

100%

гарантия качества

setIsModalOpen(false)} />
); }; export default Hero;