From 2ca5ac4f9d1550a3055414dd21e8019dbb484273 Mon Sep 17 00:00:00 2001 From: albivkt Date: Mon, 30 Jun 2025 00:23:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=87?= =?UTF-8?q?=D0=B8=D0=BA=D0=B8=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=BE=D0=BB=D0=B5?= =?UTF-8?q?=D0=B9=20=D0=B2=D0=B2=D0=BE=D0=B4=D0=B0=20=D0=B2=20=D0=BC=D0=BE?= =?UTF-8?q?=D0=B4=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=BC=20=D0=BE=D0=BA=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=BA=D0=BE=D0=BD=D1=82=D0=B0=D0=BA=D1=82=D0=BE=D0=B2?= =?UTF-8?q?,=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20?= =?UTF-8?q?=D1=82=D0=B5=D0=BA=D1=81=D1=82=D1=8B=20=D0=B2=20=D1=81=D0=B5?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D1=8F=D1=85=20=D0=BA=D0=BE=D0=BD=D1=82=D0=B0?= =?UTF-8?q?=D0=BA=D1=82=D0=BE=D0=B2=20=D0=B8=20=D0=BE=D1=82=D0=B7=D1=8B?= =?UTF-8?q?=D0=B2=D0=BE=D0=B2,=20=D0=B0=20=D1=82=D0=B0=D0=BA=D0=B6=D0=B5?= =?UTF-8?q?=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D1=8B=20=D0=BE?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D1=83?= =?UTF-8?q?=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B8=D0=BD?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D0=B2=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ContactModal.tsx | 16 ++++++++++++---- src/components/ContactSection.tsx | 4 ++-- src/components/ProjectsSection.tsx | 26 +++++++++++++------------- src/components/ReviewsSection.tsx | 12 ++++++++++-- 4 files changed, 37 insertions(+), 21 deletions(-) diff --git a/src/components/ContactModal.tsx b/src/components/ContactModal.tsx index 03ea9f6..dbac052 100644 --- a/src/components/ContactModal.tsx +++ b/src/components/ContactModal.tsx @@ -40,6 +40,10 @@ const ContactModal = ({ isOpen, onClose }: ContactModalProps) => { } }; + const handleNameChange = (e: React.ChangeEvent) => { + handleInputChange('name', e.target.value); + }; + const handlePhoneChange = (e: React.ChangeEvent) => { let value = e.target.value.replace(/\D/g, ''); @@ -59,6 +63,10 @@ const ContactModal = ({ isOpen, onClose }: ContactModalProps) => { handleInputChange('phone', formattedValue); }; + const handleMessageChange = (e: React.ChangeEvent) => { + handleInputChange('message', e.target.value); + }; + const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); @@ -149,7 +157,7 @@ const ContactModal = ({ isOpen, onClose }: ContactModalProps) => { name="name" placeholder="Ваше имя" value={formData.name} - onChange={handleInputChange} + onChange={handleNameChange} className="w-full px-4 py-3 rounded-lg bg-white 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 /> @@ -161,7 +169,7 @@ const ContactModal = ({ isOpen, onClose }: ContactModalProps) => { name="phone" placeholder="Ваш телефон" value={formData.phone} - onChange={handleInputChange} + onChange={handlePhoneChange} className="w-full px-4 py-3 rounded-lg bg-white 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 /> @@ -173,7 +181,7 @@ const ContactModal = ({ isOpen, onClose }: ContactModalProps) => { placeholder="Ваше сообщение" rows={4} value={formData.message} - onChange={handleInputChange} + onChange={handleMessageChange} className="w-full px-4 py-3 rounded-lg bg-white 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 resize-none" required /> @@ -201,7 +209,7 @@ const ContactModal = ({ isOpen, onClose }: ContactModalProps) => {

- Нажимая кнопку "Отправить сообщение", вы соглашаетесь с{' '} + Нажимая кнопку “Отправить сообщение”, вы соглашаетесь с{' '} Политикой конфиденциальности diff --git a/src/components/ContactSection.tsx b/src/components/ContactSection.tsx index 9e5bf26..bc6737e 100644 --- a/src/components/ContactSection.tsx +++ b/src/components/ContactSection.tsx @@ -1,7 +1,7 @@ 'use client'; import { useState } from 'react'; -import { Phone, Mail, MapPin, CheckCircle, AlertCircle } from 'lucide-react'; +import { Phone, Mail, MapPin } from 'lucide-react'; import FadeInSection from './FadeInSection'; const ContactSection = () => { @@ -213,7 +213,7 @@ const ContactSection = () => {

- Нажимая кнопку "Отправить сообщение", вы соглашаетесь с{' '} + Нажимая кнопку “Отправить сообщение”, вы соглашаетесь с{' '} Политикой конфиденциальности diff --git a/src/components/ProjectsSection.tsx b/src/components/ProjectsSection.tsx index 41be607..fd6d9f0 100644 --- a/src/components/ProjectsSection.tsx +++ b/src/components/ProjectsSection.tsx @@ -13,7 +13,7 @@ const projects = [ { id: 1, title: 'Гармония', - description: 'Дом 11х9м, общая площадь 101,4 кв.м., 3 спальни, 1 санузел', + description: 'Общая площадь 200 кв.м.', images: [ { type: 'facade', src: '/images/garmony.png', alt: 'Фасад дома Гармония' }, { type: 'plan', src: '/images/2.jpg', alt: 'Планировка 1 этажа' }, @@ -24,7 +24,7 @@ const projects = [ { id: 2, title: 'Горизонт', - description: 'Дом 14х13 м, общая площадь 142,8 кв.м, 3 спальни, 2 санузла', + description: 'Общая площадь 360 кв.м.', images: [ { type: 'facade', src: '/images/gorizont.png', alt: 'Фасад дома Горизонт' }, { type: 'plan', src: '/images/22.jpg', alt: 'Планировка 1 этажа' }, @@ -34,20 +34,20 @@ const projects = [ }, { id: 3, - title: 'Филимонов', - description: 'Дом 14,2х10,5 м, общая площадь 131,4 кв.м., 3 спальни, 2 санузла', + title: 'Европейский квартал', + description: 'Общая площадь 120 кв.м.', images: [ - { type: 'facade', src: '/images/filimonov.png', alt: 'Фасад дома Филимонов' }, + { type: 'facade', src: '/images/filimonov.png', alt: 'Фасад дома Европейский квартал' }, { type: 'plan', src: '/images/333.jpg', alt: 'Планировка дома' } ], file: '/projects/filimonov.pdf', }, { id: 4, - title: 'Моронцов', - description: 'Дом 12х8м, общая площадь 89,6 кв.м., 2 спальни, 1 санузел', + title: 'Проект 12', + description: 'Общая площадь 100 кв.м.', images: [ - { type: 'facade', src: '/images/moronchov.png', alt: 'Фасад дома Моронцов' }, + { type: 'facade', src: '/images/moronchov.png', alt: 'Фасад дома Проект 12' }, { type: 'plan', src: '/images/3333.jpg', alt: 'Планировка дома' } ], file: '/projects/moronchov.pdf', @@ -55,7 +55,7 @@ const projects = [ { id: 5, title: 'Ранчо', - description: 'Дом 15х12м, общая площадь 156,8 кв.м., 4 спальни, 2 санузла', + description: 'Общая площадь 96 кв.м.', images: [ { type: 'facade', src: '/images/rancho.png', alt: 'Фасад дома Ранчо' }, { type: 'plan', src: '/images/111.jpg', alt: 'Планировка 1 этажа' }, @@ -66,7 +66,7 @@ const projects = [ { id: 6, title: 'Тихие Зори', - description: 'Дом 13х9м, общая площадь 118,2 кв.м., 3 спальни, 1 санузел', + description: 'Общая площадь 130 кв.м.', images: [ { type: 'facade', src: '/images/zori.png', alt: 'Фасад дома Тихие Зори' }, { type: 'plan', src: '/images/122.jpg', alt: 'Планировка дома' } @@ -76,7 +76,7 @@ const projects = [ { id: 7, title: 'Уютное гнездышко', - description: 'Дом 16х10м, общая площадь 168,4 кв.м., 4 спальни, 3 санузла', + description: 'Общая площадь 98 кв.м.', images: [ { type: 'facade', src: '/images/gnezdo.png', alt: 'Фасад дома Уютное гнездышко' }, { type: 'plan', src: '/images/3333.jpg', alt: 'Планировка дома' } @@ -86,7 +86,7 @@ const projects = [ { id: 8, title: 'Аура', - description: 'Дом 10х8м, общая площадь 78,6 кв.м., 2 спальни, 1 санузел', + description: 'Общая площадь 73 кв.м.', images: [ { type: 'facade', src: '/images/aura.png', alt: 'Фасад дома Аура' }, { type: 'plan', src: '/images/444.jpg', alt: 'Планировка 1 этажа' }, @@ -97,7 +97,7 @@ const projects = [ { id: 9, title: 'Надежда', - description: 'Дом 18х12м, общая площадь 198,4 кв.м., 5 спален, 3 санузла', + description: 'Общая площадь 100 кв.м.', images: [ { type: 'facade', src: '/images/nade.png', alt: 'Фасад дома Надежда' }, { type: 'plan', src: '/images/666.jpg', alt: 'Планировка дома' } diff --git a/src/components/ReviewsSection.tsx b/src/components/ReviewsSection.tsx index 4bddca3..0b5e74d 100644 --- a/src/components/ReviewsSection.tsx +++ b/src/components/ReviewsSection.tsx @@ -1,30 +1,38 @@ 'use client'; import Image from 'next/image'; -import { Star } from 'lucide-react'; import FadeInSection from './FadeInSection'; const reviews = [ { id: 1, name: 'Александр Петров', + position: 'Владелец дома', text: 'Очень доволен качеством строительства. Команда профессионалов, все работы выполнены в срок и с соблюдением всех норм.', rating: 5, image: '/images/Sasha.jpg', + project: 'Коттедж 150 м²', + date: 'Сентябрь 2024', }, { id: 2, name: 'Елена Смирнова', + position: 'Владелица дома', text: 'Спасибо за отличную работу! Дом построен качественно, все пожелания были учтены. Рекомендую всем!', rating: 5, image: '/images/Elena.jpg', + project: 'Дом 120 м²', + date: 'Август 2024', }, { id: 3, name: 'Дмитрий Иванов', + position: 'Владелец дома', text: 'Профессиональный подход к делу. Все этапы строительства контролировались, результат превзошел ожидания.', rating: 5, image: '/images/Dmitry.jpg', + project: 'Коттедж 180 м²', + date: 'Июль 2024', }, ]; @@ -85,7 +93,7 @@ const ReviewsSection = () => {

- "{review.text}" + “{review.text}”