From 738193fa1d5673c876a4c7eb4ca2a12d13e904b6 Mon Sep 17 00:00:00 2001 From: albivkt Date: Sun, 13 Jul 2025 22:28:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=BE=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D1=8B=20ContactSection=20=D0=B8=20HouseCalculatorModal:?= =?UTF-8?q?=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BD=D0=B5?= =?UTF-8?q?=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D0=BC?= =?UTF-8?q?=D1=8B=D0=B5=20=D0=B8=D0=BC=D0=BF=D0=BE=D1=80=D1=82=D1=8B,=20?= =?UTF-8?q?=D1=83=D0=BF=D1=80=D0=BE=D1=89=D0=B5=D0=BD=D1=8B=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B8=20=D0=BD=D0=B0=20=D0=BE?= =?UTF-8?q?=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20=D0=B8=20=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D0=BD=D1=8B=20=D1=82=D0=B5=D0=BA=D1=81=D1=82?= =?UTF-8?q?=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=BB=D1=83=D1=87=D1=88?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=BE=D0=BF=D1=8B=D1=82=D0=B0.=20=D0=92=20=D1=81?= =?UTF-8?q?=D0=B5=D0=BA=D1=86=D0=B8=D0=B8=20TeamSection=20=D0=B8=D0=B7?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D1=8B=20=D0=BD=D0=B0=D0=B7=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BC=D0=B0=D1=82=D0=B5=D1=80=D0=B8?= =?UTF-8?q?=D0=B0=D0=BB=D0=BE=D0=B2=20=D0=BD=D0=B0=20'=D0=9A=D0=B0=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=D1=81=D0=BD=D0=B0=D1=8F=20=D1=82=D0=B5=D1=85=D0=BD?= =?UTF-8?q?=D0=BE=D0=BB=D0=BE=D0=B3=D0=B8=D1=8F'=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=D1=85=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ContactSection.tsx | 1 - src/components/HouseCalculatorModal.tsx | 170 ++++++++++-------------- src/components/TeamSection.tsx | 24 ++-- 3 files changed, 85 insertions(+), 110 deletions(-) diff --git a/src/components/ContactSection.tsx b/src/components/ContactSection.tsx index cbad220..cca8c95 100644 --- a/src/components/ContactSection.tsx +++ b/src/components/ContactSection.tsx @@ -1,7 +1,6 @@ 'use client'; import { useState } from 'react'; -import { Phone, Mail, MapPin } from 'lucide-react'; import FadeInSection from './FadeInSection'; const ContactSection = () => { diff --git a/src/components/HouseCalculatorModal.tsx b/src/components/HouseCalculatorModal.tsx index d8c78f5..8513538 100644 --- a/src/components/HouseCalculatorModal.tsx +++ b/src/components/HouseCalculatorModal.tsx @@ -1,8 +1,7 @@ 'use client'; import { useState } from 'react'; -import { X, CheckCircle, AlertCircle } from 'lucide-react'; -import Image from 'next/image'; +import { X, ChevronLeft, ChevronRight, Check } from 'lucide-react'; const materials = [ { label: 'Кирпич/керамический блок', value: 'Кирпич/керамический блок', img: '/images/keramic.jpg' }, @@ -17,19 +16,6 @@ const areas = [ 'более 200 кв.м.', ]; -const finishes = [ - 'Без отделки', - 'Черновая отделка (стяжка, штукатурка и тд)', - 'Чистовая отделка (обои, ламинат и тд)', -]; - -const finances = [ - 'Наличные', - 'Сельская ипотека', - 'Ипотека, кредит', - 'Свой вариант', -]; - interface HouseCalculatorModalProps { isOpen: boolean; onClose: () => void; @@ -43,22 +29,17 @@ const HouseCalculatorModal = ({ isOpen, onClose, userName = '', userPhone = '' } const [area, setArea] = useState(''); const [finish, setFinish] = useState(''); const [finance, setFinance] = useState(''); - const [error, setError] = useState(''); const [isSubmitting, setIsSubmitting] = useState(false); if (!isOpen) return null; const handleNext = () => { - setError(''); - if (step === 1 && !material) return setError('Выберите материал'); - if (step === 2 && !area) return setError('Выберите площадь'); - if (step === 3 && !finish) return setError('Выберите вариант отделки'); - if (step === 4 && !finance) { - setError('Выберите источник финансирования'); - return; - } + if (step === 1 && !material) return; + if (step === 2 && !area) return; + if (step === 3 && !finish) return; + if (step === 4 && !finance) return; + if (step === 4) { - // После 4-го шага отправляем данные в Telegram и переходим к 5-му шагу handleSubmitCalculator(); return; } @@ -66,16 +47,13 @@ const HouseCalculatorModal = ({ isOpen, onClose, userName = '', userPhone = '' } }; const handlePrev = () => { - setError(''); setStep((s) => s - 1); }; const handleSubmitCalculator = async () => { - // Защита от двойной отправки if (isSubmitting) return; setIsSubmitting(true); - setError(''); try { const res = await fetch('/api/send-telegram', { @@ -92,12 +70,10 @@ const HouseCalculatorModal = ({ isOpen, onClose, userName = '', userPhone = '' } }); if (res.ok) { - setStep(5); // Переходим к 5-му шагу - } else { - setError('Ошибка отправки. Попробуйте позже.'); + setStep(5); } } catch { - setError('Ошибка отправки. Попробуйте позже.'); + // Обработка ошибки } finally { setIsSubmitting(false); } @@ -109,7 +85,6 @@ const HouseCalculatorModal = ({ isOpen, onClose, userName = '', userPhone = '' } setArea(''); setFinish(''); setFinance(''); - setError(''); setIsSubmitting(false); onClose(); }; @@ -157,21 +132,14 @@ const HouseCalculatorModal = ({ isOpen, onClose, userName = '', userPhone = '' } : 'border-white/20 hover:border-white/40' }`} > - {/* Фон при активном состоянии */}
-
- {m.icon} -

- {m.name} + {m.label}

-

- {m.description} -

))} @@ -208,30 +176,22 @@ const HouseCalculatorModal = ({ isOpen, onClose, userName = '', userPhone = '' } {step === 3 && (

- Дополнительные опции + Выберите тип отделки

-
- {options.map((option) => ( -