5 Commits

Author SHA1 Message Date
e390b3489d Update src/app/page.tsx 2026-05-22 19:46:38 +00:00
ed8896ce04 Update src/app/page.tsx 2026-05-22 19:46:10 +00:00
cb5cdebbef Update src/app/page.tsx 2026-05-22 19:45:43 +00:00
3a34f67cfc Merge version_19 into main
Merge version_19 into main
2026-05-22 19:40:38 +00:00
ef2c28d89d Merge version_19 into main
Merge version_19 into main
2026-05-22 19:40:09 +00:00

View File

@@ -2,13 +2,10 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import { useState } from "react";
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FaqBase from '@/components/sections/faq/FaqBase';
import FeatureCardTwentyThree from '@/components/sections/feature/FeatureCardTwentyThree';
import FooterMedia from '@/components/sections/footer/FooterMedia';
import FooterSimple from '@/components/sections/footer/FooterSimple';
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
import MediaAbout from '@/components/sections/about/MediaAbout';
import MetricCardTwo from '@/components/sections/metrics/MetricCardTwo';
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import PricingCardNine from '@/components/sections/pricing/PricingCardNine';
@@ -17,34 +14,11 @@ import TeamCardSix from '@/components/sections/team/TeamCardSix';
import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne';
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 element = document.getElementById(id);
if (element) {
element.scrollIntoView({ behavior: "smooth" });
}
const menu = document.querySelector('[data-fullscreen-menu]');
if (menu) {
(menu as HTMLElement).style.display = 'none';
}
};
return (
@@ -61,62 +35,73 @@ export default function LandingPage() {
headingFontWeight="normal"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Услуги", id: "services" },
{ name: "О клинике", id: "about" },
{ name: "Врачи", id: "team" },
{ name: "Запись", id: "contact" },
]}
brandName="Diamond Dent"
/>
</div>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Услуги", id: "services" },
{ name: "О нас", id: "why-us" },
{ name: "Цены", id: "pricing" },
{ name: "Запись", id: "contact" },
]}
brandName="Diamond Dent"
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboardCarousel
background={{ variant: "gradient-bars" }}
title="Ваша идеальная улыбка — наша миссия"
description="Премиальная стоматология в Грозном. Мы сочетаем передовые технологии и заботливый подход для создания вашей безупречной улыбки."
buttons={[
{ text: "Записаться на приём", href: "https://wa.me/+79291033003" },
{ 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" }]}
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboardCarousel
title="Ваша идеальная улыбка — наша миссия"
description="Премиальная стоматология в Грозном"
background={{ variant: "gradient-bars" }}
buttons={[
{ text: "Записаться", href: "#contact" },
{ text: "Услуги", onClick: () => handleScroll('services') },
]}
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: "dentistry" }]}
/>
</div>
<div id="about" data-section="about"><MediaAbout title="Diamond Dent Grozny — качество в деталях" description="Наша клиника основана на принципах инноваций и искренней заботы." useInvertedBackground={false} /></div>
<div id="services" data-section="services"><FeatureCardTwentyThree animationType="slide-up" textboxLayout="split" features={[]} title="Наши услуги" description="Профессиональный спектр стоматологических услуг." useInvertedBackground={false} /></div>
<div id="services" data-section="services">
<FeatureCardTwentyThree
title="Наши услуги"
description="Мы предлагаем полный спектр стоматологических услуг с использованием современного оборудования."
features={[{ id: '1', title: 'Имплантация', tags: ['Премиум'], imageSrc: 'http://img.b2bpic.net/free-photo/dental-implants_38503-463.jpg?_wi=1' }, { id: '2', title: 'Отбеливание', tags: ['Эстетика'], imageSrc: 'http://img.b2bpic.net/free-photo/white-teeth_169016-568.jpg?_wi=1' }]}
animationType="slide-up"
textboxLayout="split"
useInvertedBackground={false}
/>
</div>
<div id="calculator" data-section="calculator" className="py-20 bg-card">
<div className="container mx-auto px-4 text-center max-w-xl">
<h2 className="text-3xl font-bold mb-4">Рассчитайте стоимость лечения</h2>
<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 id="before-after" data-section="before-after">
<ProductCardFour title="Преображение улыбок" description="Посмотрите на результаты наших работ по восстановлению эстетики улыбки." gridVariant="three-columns-all-equal-width" animationType="slide-up" textboxLayout="split" useInvertedBackground={false} />
</div>
<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>
<div id="team" data-section="team"><TeamCardSix members={[]} gridVariant="three-columns-all-equal-width" animationType="slide-up" title="Команда профессионалов" textboxLayout="split" description="Наши лучшие специалисты" useInvertedBackground={false} /></div>
<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>
<div id="testimonials" data-section="testimonials"><TestimonialCardOne testimonials={[]} gridVariant="three-columns-all-equal-width" animationType="slide-up" title="Отзывы" textboxLayout="split" description="Что говорят наши пациенты" useInvertedBackground={false} /></div>
<div id="pricing" data-section="pricing"><PricingCardNine plans={[]} animationType="slide-up" title="Стоимость услуг" textboxLayout="split" description="Прозрачные цены на лечение" useInvertedBackground={false} /></div>
<div id="faq" data-section="faq"><FaqBase faqs={[]} title="Часто задаваемые вопросы" textboxLayout="split" faqsAnimation="slide-up" description="Ответы на популярные вопросы" useInvertedBackground={false} /></div>
<div id="contact" data-section="contact"><ContactSplitForm title="Записаться на прием" inputs={[{name:"name", type:"text", placeholder:"Имя"}, {name:"phone", type:"tel", placeholder:"Телефон"}]} description="Адрес: Грозный" useInvertedBackground={false} /></div>
<div id="map" data-section="map"><div className="p-10 text-center">Карта</div></div>
<div id="footer" data-section="footer"><FooterMedia logoText="Diamond Dent" columns={[]} imageSrc="" /></div>
<div id="why-us" data-section="why-us">
<MetricCardTwo metrics={[]} description="Мы используем только сертифицированные материалы и передовые технологии лечения." gridVariant="uniform-all-items-equal" animationType="slide-up" title="Почему выбирают нас?" textboxLayout="split" useInvertedBackground={false} />
</div>
<div id="team" data-section="team">
<TeamCardSix members={[]} description="В нашей клинике работают специалисты с многолетним стажем и подтвержденной квалификацией." gridVariant="three-columns-all-equal-width" animationType="slide-up" title="Команда профессионалов" textboxLayout="split" useInvertedBackground={false} />
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardOne testimonials={[]} description="Мы ценим доверие наших пациентов и стремимся к совершенству в каждом случае." gridVariant="three-columns-all-equal-width" animationType="slide-up" title="Отзывы" textboxLayout="split" useInvertedBackground={false} />
</div>
<div id="pricing" data-section="pricing">
<PricingCardNine plans={[]} description="Прозрачное ценообразование на все виды услуг нашей стоматологической клиники." animationType="slide-up" title="Цены" textboxLayout="split" useInvertedBackground={false} />
</div>
<div id="contact" data-section="contact">
<ContactSplitForm title="Записаться на прием" description="г. Грозный, ул. Стоматологическая 1. Телефон: +7 (999) 000-00-00" inputs={[{name:"name", type:"text", placeholder:"Ваше имя"}, {name:"phone", type:"tel", placeholder:"Ваш телефон"}]} useInvertedBackground={false} />
</div>
<div id="footer" data-section="footer">
<FooterSimple
columns={[{ title: "Контакты", items: [{ label: "Адрес: Грозный" }, { label: "Телефон: +7(999)000-00-00" }, { label: "Instagram: @diamonddent" }] }, { title: "Время работы", items: [{ label: "Пн-Пт: 09:00 - 20:00" }, { label: "Сб-Вс: 10:00 - 18:00" }] }]}
bottomLeftText="© 2025 Diamond Dent"
bottomRightText="Все права защищены"
/>
</div>
</ReactLenis>
</ThemeProvider>
);