From 77ada7e1f8cdbc3d4322a496ed92e76c0b0ea5be Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 11:27:43 +0000 Subject: [PATCH] Update src/app/page.tsx --- src/app/page.tsx | 700 ++++++++--------------------------------------- 1 file changed, 116 insertions(+), 584 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index d665feb..f42b46f 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,624 +1,156 @@ -"use client"; +"use client" import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay"; -import HeroBillboardScroll from "@/components/sections/hero/HeroBillboardScroll"; -import FooterMedia from "@/components/sections/footer/FooterMedia"; -import { Home as HomeIcon } from "lucide-react"; -import { useState } from "react"; - -interface FormData { - propertyType: string; - address: string; - transactionType: string; - fullName: string; - phone: string; - gdprCheckbox: boolean; - termsCheckbox: boolean; -} +import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple'; +import HeroCentered from '@/components/sections/hero/HeroCentered'; +import ContactText from '@/components/sections/contact/ContactText'; +import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia'; +import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal'; export default function LandingPage() { - const [formData, setFormData] = useState({ - propertyType: "", address: "", transactionType: "", fullName: "", phone: "", gdprCheckbox: false, - termsCheckbox: false, - }); - - const [successMessage, setSuccessMessage] = useState(false); - const [formErrors, setFormErrors] = useState>({}); - - const handleFormChange = ( - e: React.ChangeEvent< - HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement - > - ) => { - const { name, value, type } = e.target; - const checked = - type === "checkbox" ? (e.target as HTMLInputElement).checked : undefined; - - setFormData((prev) => ({ - ...prev, - [name]: type === "checkbox" ? checked : value, - })); - }; - - const validateForm = (): boolean => { - const errors: Record = {}; - - if (!formData.propertyType.trim()) - errors.propertyType = "Tip proprietate este obligatoriu"; - if (!formData.address.trim()) - errors.address = "Adresa este obligatorie"; - if (!formData.transactionType.trim()) - errors.transactionType = "Tip tranzacție este obligatoriu"; - if (!formData.fullName.trim()) - errors.fullName = "Nume complet este obligatoriu"; - if (!formData.phone.trim()) errors.phone = "Telefon este obligatoriu"; - if (!formData.gdprCheckbox) - errors.gdprCheckbox = "Trebuie să acceptați prelucrarea datelor"; - if (!formData.termsCheckbox) - errors.termsCheckbox = - "Trebuie să acceptați termenii și condițiile"; - - setFormErrors(errors); - return Object.keys(errors).length === 0; - }; - - const handleFormSubmit = (e: React.FormEvent) => { - e.preventDefault(); - - if (validateForm()) { - setSuccessMessage(true); - setFormData({ - propertyType: "", address: "", transactionType: "", fullName: "", phone: "", gdprCheckbox: false, - termsCheckbox: false, - }); - setTimeout(() => setSuccessMessage(false), 5000); - } - }; - return (
-
-
-
-
-
-
- professional headshot real estate agent portrait -
-
-

- Paul Blaga -

-

Consultant Imobiliar

-

- 📞 - - 0750 290 998 - -

-
-
- -

- Detaliile Proprietății -

- - {successMessage && ( -
- ✓ Mulțumim! Un consultant te va contacta în curând. -
- )} - -
-
- - - {formErrors.propertyType && ( -

- {formErrors.propertyType} -

- )} -
- -
- -