From 9e4b020c8aba4ee226777d9ffd454dd5de54c226 Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 22 May 2026 19:48:13 +0000 Subject: [PATCH] Switch to version 19: modified src/app/page.tsx --- src/app/page.tsx | 143 ++++++++++++++++++++++++++--------------------- 1 file changed, 79 insertions(+), 64 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index ce2d4f2..9cbc8f6 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -2,10 +2,13 @@ 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 FooterSimple from '@/components/sections/footer/FooterSimple'; +import FooterMedia from '@/components/sections/footer/FooterMedia'; 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'; @@ -14,11 +17,34 @@ 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(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 ( @@ -35,73 +61,62 @@ export default function LandingPage() { headingFontWeight="normal" > - + -
- 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" }]} - /> -
+
+ 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" }]} + /> +
-
- -
+
+
-
- -
+
+
+

Рассчитайте стоимость лечения

+

Получите примерную стоимость за 30 секунд

+ + setTeeth(Number(e.target.value))} placeholder="Количество зубов" /> + + {price !== null && ( +
+

Примерная стоимость: {price} ₽

+ Записаться на приём +
+ )} +
+
-
- -
- -
- -
- -
- -
- -
- -
- -
- -
- - +
+
+
+
+
+
+
+
Карта
+
);