Update src/app/application-form/page.tsx
This commit is contained in:
@@ -3,16 +3,66 @@
|
|||||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
import FooterSimple from '@/components/sections/footer/FooterSimple';
|
import FooterSimple from '@/components/sections/footer/FooterSimple';
|
||||||
import ButtonTextShift from '@/components/button/ButtonTextShift/ButtonTextShift';
|
|
||||||
import { FileText, DollarSign } from "lucide-react";
|
|
||||||
|
|
||||||
export default function ApplicationFormPage() {
|
export default function ApplicationFormPage() {
|
||||||
const handleFormSubmit = (e: React.FormEvent) => {
|
const handleSubmit = (e: React.FormEvent) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
// In a real application, you would handle form submission here, e.g., send data to an API
|
// In a real application, you would send this data to a backend.
|
||||||
alert("Application submitted! Please proceed to payment.");
|
alert("Application Submitted! Redirecting to payment...");
|
||||||
|
// Simulate redirection to a payment gateway
|
||||||
|
setTimeout(() => {
|
||||||
|
console.log("Redirecting to payment for AED 500...");
|
||||||
|
// window.location.href = "/payment-gateway-url";
|
||||||
|
}, 1000);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Navigation items for NavbarStyleCentered, adjusted to link back to homepage sections
|
||||||
|
const applicationFormNavItems = [
|
||||||
|
{ name: "Properties", id: "/#properties" },
|
||||||
|
{ name: "About", id: "/#about" },
|
||||||
|
{ name: "Services", id: "/#services" },
|
||||||
|
{ name: "Team", id: "/#team" },
|
||||||
|
{ name: "Testimonials", id: "/#testimonials" },
|
||||||
|
{ name: "Contact", id: "/#contact" },
|
||||||
|
{ name: "Apply Now", id: "/application-form" }
|
||||||
|
];
|
||||||
|
|
||||||
|
// Footer columns for FooterSimple, adjusted to link back to homepage sections
|
||||||
|
const applicationFormFooterColumns = [
|
||||||
|
{
|
||||||
|
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" },
|
||||||
|
{ label: "Apply Now", href: "/application-form" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
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: "#" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeProvider
|
<ThemeProvider
|
||||||
defaultButtonVariant="hover-magnetic"
|
defaultButtonVariant="hover-magnetic"
|
||||||
@@ -29,143 +79,144 @@ export default function ApplicationFormPage() {
|
|||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarStyleCentered
|
<NavbarStyleCentered
|
||||||
brandName="Luxe Properties"
|
brandName="Luxe Properties"
|
||||||
navItems={[
|
navItems={applicationFormNavItems}
|
||||||
{ name: "Properties", id: "properties" },
|
button={{ text: "Schedule Viewing", href: "/#contact" }}
|
||||||
{ name: "About", id: "about" },
|
|
||||||
{ name: "Services", id: "services" },
|
|
||||||
{ name: "Team", id: "team" },
|
|
||||||
{ name: "Testimonials", id: "testimonials" },
|
|
||||||
{ name: "Contact", id: "contact" },
|
|
||||||
{ name: "Apply Now", id: "/application-form" }
|
|
||||||
]}
|
|
||||||
button={{ text: "Schedule Viewing", href: "contact" }}
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<main className="min-h-screen pt-24 pb-12 flex flex-col items-center justify-center text-foreground">
|
<main className="relative z-10 py-20 px-4 sm:px-6 lg:px-8 bg-background min-h-[calc(100vh-6rem)]">
|
||||||
<div className="container max-w-3xl mx-auto p-6 bg-card rounded-lg shadow-lg">
|
<div className="max-w-4xl mx-auto">
|
||||||
<h1 className="text-4xl md:text-5xl font-bold mb-6 text-center">Application Form</h1>
|
<h1 className="text-5xl md:text-6xl font-extrabold text-center mb-6 leading-tight text-foreground">
|
||||||
<p className="text-center text-lg text-foreground-lighter mb-8">
|
Property Application Form
|
||||||
Complete the form below to apply for your dream property.
|
</h1>
|
||||||
|
<p className="text-center text-lg md:text-xl text-foreground/70 mb-12">
|
||||||
|
Complete the form below to apply for our exclusive properties.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<form onSubmit={handleFormSubmit} className="space-y-6">
|
<div className="bg-card p-8 rounded-xl shadow-2xl space-y-8 border border-border">
|
||||||
<div>
|
<form onSubmit={handleSubmit} className="space-y-6">
|
||||||
<label htmlFor="name" className="block text-sm font-medium text-foreground">Name</label>
|
{/* Personal Information */}
|
||||||
<input
|
<div>
|
||||||
type="text"
|
<h2 className="text-2xl font-semibold text-foreground mb-4">Personal Information</h2>
|
||||||
id="name"
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||||
name="name"
|
<div>
|
||||||
required
|
<label htmlFor="fullName" className="block text-sm font-medium text-foreground mb-2">Full Name</label>
|
||||||
className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-primary-cta focus:ring-primary-cta bg-background p-2 text-foreground"
|
<input
|
||||||
/>
|
type="text"
|
||||||
</div>
|
id="fullName"
|
||||||
|
name="fullName"
|
||||||
<div>
|
required
|
||||||
<label htmlFor="email" className="block text-sm font-medium text-foreground">Email</label>
|
className="w-full px-4 py-2 bg-background-accent text-foreground rounded-lg border border-border focus:outline-none focus:ring-2 focus:ring-primary-cta"
|
||||||
<input
|
/>
|
||||||
type="email"
|
</div>
|
||||||
id="email"
|
<div>
|
||||||
name="email"
|
<label htmlFor="emailAddress" className="block text-sm font-medium text-foreground mb-2">Email Address</label>
|
||||||
required
|
<input
|
||||||
className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-primary-cta focus:ring-primary-cta bg-background p-2 text-foreground"
|
type="email"
|
||||||
/>
|
id="emailAddress"
|
||||||
</div>
|
name="emailAddress"
|
||||||
|
required
|
||||||
<div>
|
className="w-full px-4 py-2 bg-background-accent text-foreground rounded-lg border border-border focus:outline-none focus:ring-2 focus:ring-primary-cta"
|
||||||
<label htmlFor="phone" className="block text-sm font-medium text-foreground">Phone</label>
|
/>
|
||||||
<input
|
</div>
|
||||||
type="tel"
|
<div>
|
||||||
id="phone"
|
<label htmlFor="phoneNumber" className="block text-sm font-medium text-foreground mb-2">Phone Number</label>
|
||||||
name="phone"
|
<input
|
||||||
required
|
type="tel"
|
||||||
className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-primary-cta focus:ring-primary-cta bg-background p-2 text-foreground"
|
id="phoneNumber"
|
||||||
/>
|
name="phoneNumber"
|
||||||
</div>
|
required
|
||||||
|
className="w-full px-4 py-2 bg-background-accent text-foreground rounded-lg border border-border focus:outline-none focus:ring-2 focus:ring-primary-cta"
|
||||||
<div>
|
/>
|
||||||
<label htmlFor="employmentInfo" className="block text-sm font-medium text-foreground">Employment Information</label>
|
</div>
|
||||||
<textarea
|
</div>
|
||||||
id="employmentInfo"
|
|
||||||
name="employmentInfo"
|
|
||||||
rows={4}
|
|
||||||
required
|
|
||||||
className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-primary-cta focus:ring-primary-cta bg-background p-2 text-foreground"
|
|
||||||
></textarea>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<label htmlFor="documentUpload" className="block text-sm font-medium text-foreground">Document Upload (e.g., ID, proof of funds)</label>
|
|
||||||
<input
|
|
||||||
type="file"
|
|
||||||
id="documentUpload"
|
|
||||||
name="documentUpload"
|
|
||||||
multiple
|
|
||||||
className="mt-1 block w-full text-foreground file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-primary-cta file:text-primary-cta-foreground hover:file:bg-primary-cta-hover cursor-pointer"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p className="text-center text-sm text-green-600 font-semibold mt-8">
|
|
||||||
Your application has been received! Please proceed to the payment section to finalize your submission.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div className="border-t border-gray-200 pt-8 mt-8">
|
|
||||||
<h2 className="text-3xl font-bold mb-4 text-center">Application Fee</h2>
|
|
||||||
<p className="text-center text-foreground-lighter mb-4">
|
|
||||||
A non-refundable application fee of <span className="font-semibold text-primary-cta">$60 USD</span> is required to process your application. This fee covers administrative costs and a preliminary review of your submission.
|
|
||||||
</p>
|
|
||||||
<p className="text-center text-foreground-lighter mb-6">
|
|
||||||
Click the button below to complete your payment securely via Flutterwave.
|
|
||||||
</p>
|
|
||||||
<div className="flex justify-center">
|
|
||||||
<ButtonTextShift
|
|
||||||
text="Pay $60 Application Fee"
|
|
||||||
href="https://flutterwave.com/pay/4jnjkgftkyoz"
|
|
||||||
type="button"
|
|
||||||
className="bg-primary-cta text-primary-cta-foreground px-6 py-3 rounded-full text-lg font-semibold hover:bg-primary-cta-hover transition-colors"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{/* Employment Information */}
|
||||||
|
<div>
|
||||||
|
<h2 className="text-2xl font-semibold text-foreground mb-4">Employment Information</h2>
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||||
|
<div>
|
||||||
|
<label htmlFor="occupation" className="block text-sm font-medium text-foreground mb-2">Occupation</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="occupation"
|
||||||
|
name="occupation"
|
||||||
|
required
|
||||||
|
className="w-full px-4 py-2 bg-background-accent text-foreground rounded-lg border border-border focus:outline-none focus:ring-2 focus:ring-primary-cta"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label htmlFor="employer" className="block text-sm font-medium text-foreground mb-2">Employer</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="employer"
|
||||||
|
name="employer"
|
||||||
|
required
|
||||||
|
className="w-full px-4 py-2 bg-background-accent text-foreground rounded-lg border border-border focus:outline-none focus:ring-2 focus:ring-primary-cta"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="md:col-span-2">
|
||||||
|
<label htmlFor="annualIncome" className="block text-sm font-medium text-foreground mb-2">Annual Income (AED)</label>
|
||||||
|
<input
|
||||||
|
type="number"
|
||||||
|
id="annualIncome"
|
||||||
|
name="annualIncome"
|
||||||
|
required
|
||||||
|
min="0"
|
||||||
|
className="w-full px-4 py-2 bg-background-accent text-foreground rounded-lg border border-border focus:outline-none focus:ring-2 focus:ring-primary-cta"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Document Upload */}
|
||||||
|
<div>
|
||||||
|
<h2 className="text-2xl font-semibold text-foreground mb-4">Document Upload</h2>
|
||||||
|
<p className="text-sm text-foreground/80 mb-4">Please upload necessary documents (e.g., ID, proof of income). Max file size 5MB per file.</p>
|
||||||
|
<div>
|
||||||
|
<label htmlFor="documents" className="block text-sm font-medium text-foreground mb-2">Upload Documents</label>
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
id="documents"
|
||||||
|
name="documents"
|
||||||
|
multiple
|
||||||
|
accept=".pdf,.doc,.docx,.jpg,.png"
|
||||||
|
className="w-full px-4 py-2 bg-background-accent text-foreground rounded-lg border border-border file:mr-4 file:py-2 file:px-4 file:rounded-lg file:border-0 file:text-sm file:font-semibold file:bg-primary-cta file:text-white hover:file:bg-primary-cta/90"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Application Fee Explanation */}
|
||||||
|
<div className="pt-4 border-t border-border">
|
||||||
|
<h3 className="text-xl font-semibold text-foreground mb-2">Application Fee</h3>
|
||||||
|
<p className="text-sm text-foreground/80">
|
||||||
|
A non-refundable application fee of <strong className="text-primary-cta">AED 500</strong> is required to process your application. This fee covers administrative costs and a comprehensive background check. You will be redirected to a secure payment gateway after submitting this form.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
className="w-full py-3 px-6 bg-primary-cta text-white font-bold rounded-lg hover:bg-primary-cta/90 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-primary-cta focus:ring-offset-2"
|
||||||
|
>
|
||||||
|
Submit Application
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{/* Confirmation Text - Note: In a real app, this would be conditionally rendered after successful submission */}
|
||||||
|
<div className="text-center pt-8 border-t border-border ">
|
||||||
|
<h2 className="text-2xl font-semibold text-foreground mb-4">Thank You for Your Application!</h2>
|
||||||
|
<p className="text-foreground/80">
|
||||||
|
Your application has been received and is currently under review. Please check your email for a confirmation and further instructions regarding the payment of the application fee. We appreciate your patience.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<div id="footer" data-section="footer">
|
<div id="footer" data-section="footer">
|
||||||
<FooterSimple
|
<FooterSimple
|
||||||
columns={[
|
columns={applicationFormFooterColumns}
|
||||||
{
|
|
||||||
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" },
|
|
||||||
{ label: "Apply Now", href: "/application-form" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
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: "#" }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]}
|
|
||||||
bottomLeftText="© 2025 Luxe Properties Dubai. All rights reserved."
|
bottomLeftText="© 2025 Luxe Properties Dubai. All rights reserved."
|
||||||
bottomRightText="Luxury Real Estate Excellence"
|
bottomRightText="Luxury Real Estate Excellence"
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user