From bb139dd84d2f240ae8da985a2efb2bcb6c44730f Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 25 Mar 2026 13:42:12 +0000 Subject: [PATCH 1/4] Add src/app/application-form/page.tsx --- src/app/application-form/page.tsx | 216 ++++++++++++++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 src/app/application-form/page.tsx diff --git a/src/app/application-form/page.tsx b/src/app/application-form/page.tsx new file mode 100644 index 0000000..23b43bb --- /dev/null +++ b/src/app/application-form/page.tsx @@ -0,0 +1,216 @@ +"use client"; + +import React, { useState } from 'react'; +import { useRouter } from 'next/navigation'; +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; +import FooterSimple from '@/components/sections/footer/FooterSimple'; +import Link from 'next/link'; + +export default function ApplicationFormPage() { + const router = useRouter(); + const [formData, setFormData] = useState({ + name: '', + email: '', + phone: '', + occupation: '', + company: '', + propertyId: '', + document: null as File | null, + }); + + const handleInputChange = (e: React.ChangeEvent) => { + const { name, value } = e.target; + setFormData(prev => ({ ...prev, [name]: value })); + }; + + const handleFileChange = (e: React.ChangeEvent) => { + if (e.target.files && e.target.files[0]) { + setFormData(prev => ({ ...prev, document: e.target.files![0] })); + } + }; + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + // In a real application, you would send formData to your backend here + console.log('Application Form Data Submitted:', formData); + router.push('/payment'); // Navigate to the payment page + }; + + const footerColumns = [ + { + title: "Company", items: [ + { label: "About Us", href: "/#about" }, + { label: "Our Services", href: "/#services" }, + { label: "Executive Team", href: "/#team" }, + { label: "Properties", href: "/#properties" }, + { label: "Contact", href: "/#contact" } + ] + }, + { + title: "Resources", items: [ + { label: "Investment Guide", href: "#" }, + { label: "Market Reports", href: "#" }, + { label: "FAQ", href: "#" }, + { label: "Blog", href: "#" } + ] + }, + { + title: "Legal", items: [ + { label: "Privacy Policy", href: "#" }, + { label: "Terms of Service", href: "#" }, + { label: "Cookie Policy", href: "#" } + ] + }, + { + title: "Connect", items: [ + { label: "LinkedIn", href: "#" }, + { label: "Instagram", href: "#" }, + { label: "WhatsApp", href: "#" } + ] + } + ]; + + const themeProviderProps = { + defaultButtonVariant: "hover-magnetic", defaultTextAnimation: "entrance-slide", borderRadius: "pill", contentWidth: "mediumSmall", sizing: "mediumLarge", background: "none", cardStyle: "glass-elevated", primaryButtonStyle: "primary-glow", secondaryButtonStyle: "radial-glow", headingFontWeight: "medium"}; + + const navbarProps = { + brandName: "Luxe Properties", navItems: [ + { name: "Properties", id: "properties" }, + { name: "About", id: "about" }, + { name: "Services", id: "services" }, + { name: "Team", id: "team" }, + { name: "Testimonials", id: "testimonials" }, + { name: "Application", href: "/application-form" }, + { name: "Contact", id: "contact" } + ], + button: { text: "Schedule Viewing", href: "#contact" } + }; + + return ( + + + +
+
+

Application Form

+

+ Please fill out the form below to apply for your desired property. A non-refundable application fee of $60 is required to process your application. + You will be redirected to a secure payment page after submission. +

+ +
+
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+ + +

Max file size: 5MB (PDF, JPG, PNG)

+
+ + +
+
+
+ + +
+ ); +} -- 2.49.1 From 96fad445cf70577583bdc742666a7aba30faf6ab Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 25 Mar 2026 13:42:13 +0000 Subject: [PATCH 2/4] Add src/app/confirmation/page.tsx --- src/app/confirmation/page.tsx | 90 +++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/app/confirmation/page.tsx diff --git a/src/app/confirmation/page.tsx b/src/app/confirmation/page.tsx new file mode 100644 index 0000000..ccba60e --- /dev/null +++ b/src/app/confirmation/page.tsx @@ -0,0 +1,90 @@ +"use client"; + +import React from 'react'; +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; +import FooterSimple from '@/components/sections/footer/FooterSimple'; +import Link from 'next/link'; +import { CheckCircle } from 'lucide-react'; + +export default function ConfirmationPage() { + const footerColumns = [ + { + title: "Company", items: [ + { label: "About Us", href: "/#about" }, + { label: "Our Services", href: "/#services" }, + { label: "Executive Team", href: "/#team" }, + { label: "Properties", href: "/#properties" }, + { label: "Contact", href: "/#contact" } + ] + }, + { + title: "Resources", items: [ + { label: "Investment Guide", href: "#" }, + { label: "Market Reports", href: "#" }, + { label: "FAQ", href: "#" }, + { label: "Blog", href: "#" } + ] + }, + { + title: "Legal", items: [ + { label: "Privacy Policy", href: "#" }, + { label: "Terms of Service", href: "#" }, + { label: "Cookie Policy", href: "#" } + ] + }, + { + title: "Connect", items: [ + { label: "LinkedIn", href: "#" }, + { label: "Instagram", href: "#" }, + { label: "WhatsApp", href: "#" } + ] + } + ]; + + const themeProviderProps = { + defaultButtonVariant: "hover-magnetic", defaultTextAnimation: "entrance-slide", borderRadius: "pill", contentWidth: "mediumSmall", sizing: "mediumLarge", background: "none", cardStyle: "glass-elevated", primaryButtonStyle: "primary-glow", secondaryButtonStyle: "radial-glow", headingFontWeight: "medium"}; + + const navbarProps = { + brandName: "Luxe Properties", navItems: [ + { name: "Properties", id: "properties" }, + { name: "About", id: "about" }, + { name: "Services", id: "services" }, + { name: "Team", id: "team" }, + { name: "Testimonials", id: "testimonials" }, + { name: "Application", href: "/application-form" }, + { name: "Contact", id: "contact" } + ], + button: { text: "Schedule Viewing", href: "#contact" } + }; + + return ( + + + +
+
+ +

Application Confirmed!

+

+ Your application has been successfully submitted and payment confirmed. + We will review your details and contact you shortly. +

+ + Return to Home + +
+
+ + +
+ ); +} -- 2.49.1 From 5ef7bae8af03cd1a8ac3f6306dbae66a6ddb6659 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 25 Mar 2026 13:42:13 +0000 Subject: [PATCH 3/4] Update src/app/page.tsx --- src/app/page.tsx | 65 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index c46df13..a8dbdb7 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -11,6 +11,7 @@ import MetricCardThree from '@/components/sections/metrics/MetricCardThree'; import TestimonialCardFive from '@/components/sections/testimonial/TestimonialCardFive'; import ContactCTA from '@/components/sections/contact/ContactCTA'; import FooterSimple from '@/components/sections/footer/FooterSimple'; +import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia'; import { Sparkles, Home, Shield, Award, Star, Mail, TrendingUp, DollarSign, Users } from "lucide-react"; export default function LandingPage() { @@ -29,16 +30,18 @@ export default function LandingPage() { > @@ -50,8 +53,8 @@ export default function LandingPage() { tag="Premium Collections" tagIcon={Sparkles} buttons={[ - { text: "Explore Properties", href: "properties" }, - { text: "Contact Agent", href: "contact" } + { text: "Explore Properties", href: "#properties" }, + { text: "Contact Agent", href: "#contact" } ]} mediaItems={[ { @@ -86,7 +89,7 @@ export default function LandingPage() { gridVariant="uniform-all-items-equal" carouselMode="buttons" buttons={[ - { text: "See all properties", href: "/properties" } + { text: "See all properties", href: "#properties" } ]} products={[ { @@ -114,7 +117,7 @@ export default function LandingPage() { imageAlt="Luxe Properties Dubai team" useInvertedBackground={false} buttons={[ - { text: "Learn Our Story", href: "#" } + { text: "Learn Our Story", href: "#about" } ]} /> @@ -237,6 +240,26 @@ export default function LandingPage() { /> +
+ +
+
@@ -256,19 +279,26 @@ export default function LandingPage() {
-- 2.49.1 From 9efb3a1173217dda2f51c699bdd280ef6c88f133 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 25 Mar 2026 13:42:14 +0000 Subject: [PATCH 4/4] Add src/app/payment/page.tsx --- src/app/payment/page.tsx | 110 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 src/app/payment/page.tsx diff --git a/src/app/payment/page.tsx b/src/app/payment/page.tsx new file mode 100644 index 0000000..b013971 --- /dev/null +++ b/src/app/payment/page.tsx @@ -0,0 +1,110 @@ +"use client"; + +import React from 'react'; +import { useRouter } from 'next/navigation'; +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; +import FooterSimple from '@/components/sections/footer/FooterSimple'; +import Link from 'next/link'; + +export default function PaymentPage() { + const router = useRouter(); + + const handleFlutterwavePayment = () => { + // In a real application, you would integrate Flutterwave SDK here + // This is a placeholder for demonstration purposes. + console.log('Initiating Flutterwave payment for $60...'); + alert('Simulating Flutterwave payment... Success!\nRedirecting to confirmation page.'); + router.push('/confirmation'); + }; + + const footerColumns = [ + { + title: "Company", items: [ + { label: "About Us", href: "/#about" }, + { label: "Our Services", href: "/#services" }, + { label: "Executive Team", href: "/#team" }, + { label: "Properties", href: "/#properties" }, + { label: "Contact", href: "/#contact" } + ] + }, + { + title: "Resources", items: [ + { label: "Investment Guide", href: "#" }, + { label: "Market Reports", href: "#" }, + { label: "FAQ", href: "#" }, + { label: "Blog", href: "#" } + ] + }, + { + title: "Legal", items: [ + { label: "Privacy Policy", href: "#" }, + { label: "Terms of Service", href: "#" }, + { label: "Cookie Policy", href: "#" } + ] + }, + { + title: "Connect", items: [ + { label: "LinkedIn", href: "#" }, + { label: "Instagram", href: "#" }, + { label: "WhatsApp", href: "#" } + ] + } + ]; + + const themeProviderProps = { + defaultButtonVariant: "hover-magnetic", defaultTextAnimation: "entrance-slide", borderRadius: "pill", contentWidth: "mediumSmall", sizing: "mediumLarge", background: "none", cardStyle: "glass-elevated", primaryButtonStyle: "primary-glow", secondaryButtonStyle: "radial-glow", headingFontWeight: "medium"}; + + const navbarProps = { + brandName: "Luxe Properties", navItems: [ + { name: "Properties", id: "properties" }, + { name: "About", id: "about" }, + { name: "Services", id: "services" }, + { name: "Team", id: "team" }, + { name: "Testimonials", id: "testimonials" }, + { name: "Application", href: "/application-form" }, + { name: "Contact", id: "contact" } + ], + button: { text: "Schedule Viewing", href: "#contact" } + }; + + return ( + + + +
+
+

Secure Payment

+

+ Your application requires a non-refundable fee. +

+
+ $60.00 +
+

+ Powered by Flutterwave for secure and reliable transactions. +

+ + + ← Back to Application Form + +
+
+ + +
+ ); +} -- 2.49.1