5 Commits

Author SHA1 Message Date
83e9e7e0a2 Update src/app/page.tsx 2026-05-22 19:40:34 +00:00
906c521efc Update src/app/page.tsx 2026-05-22 19:40:06 +00:00
005bea9f7b Switch to version 17: modified src/app/page.tsx 2026-05-22 19:03:07 +00:00
93a371fab3 Merge version_18 into main
Merge version_18 into main
2026-05-22 19:00:12 +00:00
72df297206 Merge version_18 into main
Merge version_18 into main
2026-05-22 18:59:40 +00:00

View File

@@ -2,6 +2,7 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import { useState } from "react";
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm'; import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FaqBase from '@/components/sections/faq/FaqBase'; import FaqBase from '@/components/sections/faq/FaqBase';
import FeatureCardTwentyThree from '@/components/sections/feature/FeatureCardTwentyThree'; import FeatureCardTwentyThree from '@/components/sections/feature/FeatureCardTwentyThree';
@@ -14,9 +15,27 @@ import PricingCardNine from '@/components/sections/pricing/PricingCardNine';
import ProductCardFour from '@/components/sections/product/ProductCardFour'; import ProductCardFour from '@/components/sections/product/ProductCardFour';
import TeamCardSix from '@/components/sections/team/TeamCardSix'; import TeamCardSix from '@/components/sections/team/TeamCardSix';
import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne'; import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne';
import { CheckCircle } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
const [service, setService] = useState("");
const [teeth, setTeeth] = useState(1);
const [price, setPrice] = useState<number | null>(null);
const services = [
{ name: "Имплантация", base: 25000 },
{ name: "Отбеливание", base: 8000 },
{ name: "Брекеты", base: 35000 },
{ name: "Лечение кариеса", base: 3000 },
{ name: "Виниры", base: 15000 },
{ name: "Протезирование", base: 12000 },
{ name: "Профессиональная чистка", base: 3000 },
];
const handleCalculate = () => {
const selected = services.find((s) => s.name === service);
if (selected) setPrice(selected.base * teeth);
};
const handleScroll = (id: string) => { const handleScroll = (id: string) => {
const element = document.getElementById(id); const element = document.getElementById(id);
if (element) { if (element) {
@@ -60,182 +79,45 @@ export default function LandingPage() {
title="Ваша идеальная улыбка — наша миссия" title="Ваша идеальная улыбка — наша миссия"
description="Премиальная стоматология в Грозном. Мы сочетаем передовые технологии и заботливый подход для создания вашей безупречной улыбки." description="Премиальная стоматология в Грозном. Мы сочетаем передовые технологии и заботливый подход для создания вашей безупречной улыбки."
buttons={[ buttons={[
{ { text: "Записаться на приём", href: "https://wa.me/+79291033003" },
text: "Записаться на приём", href: "https://wa.me/+79291033003?text=Здравствуйте!%20Хочу%20записаться%20на%20приём%20в%20Diamond%20Dent%20Grozny"}, { text: "Узнать больше", onClick: () => handleScroll('about') },
{
text: "Узнать больше", onClick: () => handleScroll('about')},
]}
mediaItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/young-female-dentist-treating-patients-teeth-with-dental-microscope-dentistry-concept_169016-66977.jpg?_wi=1", imageAlt: "modern dental clinic interior" },
{ imageSrc: "http://img.b2bpic.net/free-photo/patient-pov-listening-explication-teeth-treatment-dentist-coverall-showing-x-ray-tablet-stomatology-specialist-wearing-protective-suit-against-infection-with-covid19-pointing-radiograph_482257-13149.jpg", imageAlt: "modern dental clinic interior" },
{ imageSrc: "http://img.b2bpic.net/free-photo/medical-instruments_1157-18593.jpg", imageAlt: "modern dental clinic interior" }
]} ]}
mediaItems={[{ imageSrc: "http://img.b2bpic.net/free-photo/young-female-dentist-treating-patients-teeth-with-dental-microscope-dentistry-concept_169016-66977.jpg?_wi=1", imageAlt: "modern dental clinic interior" }]}
/> />
</div> </div>
<div id="about" data-section="about"> <div id="about" data-section="about"><MediaAbout title="Diamond Dent Grozny — качество в деталях" description="Наша клиника основана на принципах инноваций и искренней заботы." useInvertedBackground={false} /></div>
<MediaAbout <div id="services" data-section="services"><FeatureCardTwentyThree animationType="slide-up" textboxLayout="split" features={[]} title="Наши услуги" description="Профессиональный спектр стоматологических услуг." useInvertedBackground={false} /></div>
useInvertedBackground={false}
title="Diamond Dent Grozny — качество в деталях" <div id="calculator" data-section="calculator" className="py-20 bg-card">
description="Наша клиника основана на принципах инноваций и искренней заботы. Мы верим, что каждая улыбка заслуживает безупречного здоровья и эстетики, поэтому предлагаем лучшие решения в области стоматологии." <div className="container mx-auto px-4 text-center max-w-xl">
imageSrc="http://img.b2bpic.net/free-photo/dentistry-team-explaining-radiography-sick-patient-doing-oral-care-examination-cure-toothache-stomatologist-assistant-consulting-x-ray-results-dental-drill-procedure_482257-32294.jpg?_wi=1" <h2 className="text-3xl font-bold mb-4">Рассчитайте стоимость лечения</h2>
imageAlt="dentist patient consultation modern" <p className="mb-8 text-foreground/80">Получите примерную стоимость за 30 секунд</p>
/> <select className="w-full p-3 mb-4 rounded border" onChange={(e) => setService(e.target.value)} value={service}>
<option value="">Выберите услугу</option>
{services.map(s => <option key={s.name} value={s.name}>{s.name} (от {s.base} )</option>)}
</select>
<input type="number" min="1" max="10" className="w-full p-3 mb-4 rounded border" value={teeth} onChange={(e) => setTeeth(Number(e.target.value))} placeholder="Количество зубов" />
<button onClick={handleCalculate} className="w-full p-3 mb-6 bg-primary-cta text-white font-bold rounded">Рассчитать</button>
{price !== null && (
<div className="p-6 bg-background rounded-lg shadow-sm border">
<p className="text-xl mb-4 font-semibold">Примерная стоимость: {price} </p>
<a href="https://wa.me/+79291033003" className="inline-block px-6 py-3 bg-accent text-white rounded">Записаться на приём</a>
</div>
)}
</div>
</div> </div>
<div id="services" data-section="services"> <div id="why-us" data-section="why-us"><MetricCardTwo metrics={[]} gridVariant="uniform-all-items-equal" animationType="slide-up" title="Почему выбирают нас?" textboxLayout="split" description="Краткое описание преимуществ" useInvertedBackground={false} /></div>
<FeatureCardTwentyThree <div id="team" data-section="team"><TeamCardSix members={[]} gridVariant="three-columns-all-equal-width" animationType="slide-up" title="Команда профессионалов" textboxLayout="split" description="Наши лучшие специалисты" useInvertedBackground={false} /></div>
animationType="slide-up" <div id="before-after" data-section="before-after"><ProductCardFour products={[]} gridVariant="three-columns-all-equal-width" animationType="slide-up" title="Преображение улыбок" textboxLayout="split" description="Результаты нашей работы" useInvertedBackground={false} /></div>
textboxLayout="split" <div id="testimonials" data-section="testimonials"><TestimonialCardOne testimonials={[]} gridVariant="three-columns-all-equal-width" animationType="slide-up" title="Отзывы" textboxLayout="split" description="Что говорят наши пациенты" useInvertedBackground={false} /></div>
useInvertedBackground={true} <div id="pricing" data-section="pricing"><PricingCardNine plans={[]} animationType="slide-up" title="Стоимость услуг" textboxLayout="split" description="Прозрачные цены на лечение" useInvertedBackground={false} /></div>
features={[ <div id="faq" data-section="faq"><FaqBase faqs={[]} title="Часто задаваемые вопросы" textboxLayout="split" faqsAnimation="slide-up" description="Ответы на популярные вопросы" useInvertedBackground={false} /></div>
{ id: "s1", title: "Имплантация", tags: ["хирургия"], imageSrc: "http://img.b2bpic.net/free-photo/female-patient-looking-dental-mold-with-orthodontist_23-2148985828.jpg?_wi=1" }, <div id="contact" data-section="contact"><ContactSplitForm title="Записаться на прием" inputs={[{name:"name", type:"text", placeholder:"Имя"}, {name:"phone", type:"tel", placeholder:"Телефон"}]} description="Адрес: Грозный" useInvertedBackground={false} /></div>
{ id: "s2", title: "Отбеливание", tags: ["эстетика"], imageSrc: "http://img.b2bpic.net/free-photo/patient-receiving-dental-treatment_107420-65438.jpg?_wi=1" }, <div id="map" data-section="map"><div className="p-10 text-center">Карта</div></div>
{ id: "s3", title: "Брекеты", tags: ["ортодонтия"], imageSrc: "http://img.b2bpic.net/free-photo/dental-tools-equipment-dental-chart_1232-1742.jpg" } <div id="footer" data-section="footer"><FooterMedia logoText="Diamond Dent" columns={[]} imageSrc="" /></div>
]}
title="Наши услуги"
description="Профессиональный спектр стоматологических услуг с использованием инновационного оборудования."
/>
</div>
<div id="why-us" data-section="why-us">
<MetricCardTwo
animationType="slide-up"
textboxLayout="split"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
metrics={[
{ id: "m1", value: "10+", description: "лет успешного опыта" },
{ id: "m2", value: "5000+", description: "довольных пациентов" },
{ id: "m3", value: "100%", description: "безопасное оборудование" }
]}
title="Почему выбирают нас?"
description="Мы гордимся доверием наших пациентов и стремимся к совершенству в каждом аспекте."
/>
</div>
<div id="team" data-section="team">
<TeamCardSix
animationType="slide-up"
textboxLayout="split"
gridVariant="three-columns-all-equal-width"
useInvertedBackground={true}
members={[
{ id: "d1", name: "Яндарханов Малик", role: "Стоматолог-терапевт", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Dw84RnSEOsmbFdYVY2F51sVH09/uploaded-1779225402552-aynja8ho.jpg" },
{ id: "d2", name: "Ибиев Хасан", role: "Стоматолог-терапевт", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Dw84RnSEOsmbFdYVY2F51sVH09/uploaded-1779308675600-85eg6mq1.jpg" },
{ id: "d3", name: "Ибрагимова Марет", role: "Врач-стоматолог", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Dw84RnSEOsmbFdYVY2F51sVH09/uploaded-1779308675600-46soe5n4.jpg" }
]}
title="Команда профессионалов"
description="Лучшие специалисты в области современной стоматологии."
/>
</div>
<div id="certificates" data-section="certificates">
<section className="py-16 md:py-24 bg-[var(--card)]">
<div className="container mx-auto px-4">
<h2 className="text-3xl md:text-5xl font-bold mb-4 text-center">Наши лицензии и сертификаты</h2>
<p className="text-center mb-12 text-[var(--foreground)] opacity-80">Мы работаем в соответствии со всеми стандартами качества</p>
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
{[1, 2, 3].map((item) => (
<div key={item} className="border-2 border-[var(--background-accent)] rounded-lg p-8 flex flex-col items-center justify-center text-center">
<CheckCircle className="w-16 h-16 text-[var(--background-accent)] mb-4" />
<h3 className="font-semibold">Сертификат качества {item}</h3>
<p className="text-sm opacity-70">Соответствие стандартам ISO</p>
</div>
))}
</div>
</div>
</section>
</div>
<div id="before-after" data-section="before-after">
<ProductCardFour
animationType="slide-up"
textboxLayout="split"
gridVariant="three-columns-all-equal-width"
useInvertedBackground={false}
products={[
{ id: "p1", name: "Кейс №1", price: "5000 ₽", variant: "виниры", imageSrc: "http://img.b2bpic.net/free-photo/surprised-woman-with-hands-up-amazed-shocked-by-unexpected-news_273609-13734.jpg" },
{ id: "p2", name: "Кейс №2", price: "8000 ₽", variant: "отбеливание", imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-happy-woman-daydreams-with-closed-eyes-smiles-toothily-keeps-palms-near-face-recalls-lovely-moment-feels-glad-poses-indoor-people-pleasant-feelings-emotions-concept_273609-58258.jpg" },
{ id: "p3", name: "Кейс №3", price: "12000 ₽", variant: "ортодонтия", imageSrc: "http://img.b2bpic.net/free-photo/closeup-portrait-woman-looking-shy_273609-13720.jpg" }
]}
title="Преображение улыбок"
description="Результаты нашей работы, которыми мы гордимся."
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardOne
animationType="slide-up"
textboxLayout="split"
gridVariant="three-columns-all-equal-width"
useInvertedBackground={true}
testimonials={[
{ id: "t1", name: "Ибрагим А.", role: "Пациент", company: "Грозный", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/adult-man-woman-working-together_23-2148461552.jpg" },
{ id: "t2", name: "Зарема М.", role: "Пациент", company: "Грозный", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/cheerful-doctor-shaking-hand-patient_23-2147896666.jpg" },
{ id: "t3", name: "Руслан С.", role: "Пациент", company: "Грозный", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/happy-african-american-doctor-home-visit_637285-11276.jpg" }
]}
title="Отзывы наших пациентов"
description="Благодарим за доверие к Diamond Dent."
/>
</div>
<div id="pricing" data-section="pricing">
<PricingCardNine
animationType="slide-up"
textboxLayout="split"
useInvertedBackground={false}
plans={[
{ id: "pr1", title: "Гигиена", price: "3000 ₽", period: "сеанс", features: ["Чистка", "Полировка", "Фторирование"], button: { text: "Записаться", href: "#" } },
{ id: "pr2", title: "Отбеливание", price: "15000 ₽", period: "сеанс", features: ["Экспресс", "Защита"], button: { text: "Записаться", href: "#" } },
{ id: "pr3", title: "Лечение", price: "от 2500 ₽", period: "зуб", features: ["Пломба", "Анестезия"], button: { text: "Записаться", href: "#" } }
]}
title="Стоимость услуг"
description="Прозрачные цены на все стоматологические процедуры."
/>
</div>
<div id="faq" data-section="faq">
<FaqBase
textboxLayout="split"
useInvertedBackground={true}
faqs={[
{ id: "q1", title: "Больно ли лечить зубы?", content: "Нет, используем современную анестезию." },
{ id: "q2", title: "Сколько длится отбеливание?", content: "Около 60 минут." },
{ id: "q3", title: "Есть ли гарантия?", content: "Предоставляем официальную гарантию." }
]}
title="Часто задаваемые вопросы"
description="Ответы на популярные вопросы."
faqsAnimation="slide-up"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
useInvertedBackground={false}
title="Записаться на прием"
description="Адрес: Ул. Шейх Али Митаева, 59, Грозный | Телефон: +7 929 103 30 03"
inputs={[
{ name: "name", type: "text", placeholder: "Ваше имя", required: true },
{ name: "phone", type: "tel", placeholder: "Ваш телефон", required: true },
]}
textarea={{ name: "message", placeholder: "Услуга или комментарий", rows: 4 }}
imageSrc="http://img.b2bpic.net/free-photo/empty-hotel-lounge-with-cozy-furniture_482257-67425.jpg"
buttonText="Записаться на приём"
/>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Dw84RnSEOsmbFdYVY2F51sVH09/uploaded-1779347445955-xba4vklv.jpg"
logoText="Diamond Dent"
columns={[
{ title: "Контакты", items: [{ label: "Ул. Шейх Али Митаева, 59, Грозный", href: "#" }] },
{ title: "Соцсети", items: [{ label: "Instagram", href: "https://instagram.com/diamonddent_grozny" }] }
]}
/>
</div>
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>
); );
} }