diff --git a/public/assets/images/home/top.png b/public/assets/images/home/top.png new file mode 100644 index 0000000..64b7bdc Binary files /dev/null and b/public/assets/images/home/top.png differ diff --git a/src/app/properties/[id]/layout.tsx b/src/app/properties/[slug]/layout.tsx similarity index 100% rename from src/app/properties/[id]/layout.tsx rename to src/app/properties/[slug]/layout.tsx diff --git a/src/app/properties/[id]/metadata.ts b/src/app/properties/[slug]/metadata.ts similarity index 100% rename from src/app/properties/[id]/metadata.ts rename to src/app/properties/[slug]/metadata.ts diff --git a/src/app/properties/[slug]/page.tsx b/src/app/properties/[slug]/page.tsx new file mode 100644 index 0000000..f061b7d --- /dev/null +++ b/src/app/properties/[slug]/page.tsx @@ -0,0 +1,20 @@ +import { properties } from "@/data/properties"; +import { notFound } from "next/navigation"; +import PropertyDetailClient from "@/components/PropertyDetailClient"; + +export async function generateStaticParams() { + return properties.map((property) => ({ + slug: property.slug, + })); +} + +export default async function PropertyDetailPage({ params }: { params: Promise<{ slug: string }> }) { + const { slug } = await params; + const property = properties.find(p => p.slug === slug); + + if (!property) { + notFound(); + } + + return ; +} diff --git a/src/components/About.tsx b/src/components/About.tsx index 72c559d..8e0a96d 100644 --- a/src/components/About.tsx +++ b/src/components/About.tsx @@ -140,7 +140,7 @@ export default function About() { {/* Top Face */}
faq.category === activeTab); const toggleFAQ = (index: number) => { setOpenIndex(openIndex === index ? null : index); @@ -125,8 +241,8 @@ export default function FAQ() { key={index} onClick={() => setActiveCard(index)} className={`w-2 h-2 rounded-full transition-all duration-300 ${index === activeCard - ? 'bg-primary w-8' - : 'bg-gray-400 hover:bg-gray-600' + ? 'bg-primary w-8' + : 'bg-gray-400 hover:bg-gray-600' }`} aria-label={`Go to slide ${index + 1}`} /> @@ -136,17 +252,36 @@ export default function FAQ() { {/* Right Column: FAQ Content */}
-
+

Frequently Asked Questions

-

+

Everything you need to know about our properties and services.

+ + {/* Tabs */} +
+ {categories.map((category) => ( + + ))} +
- {faqs.map((faq, index) => ( + {filteredFaqs.map((faq, index) => (
+
@@ -51,9 +51,20 @@ export default function Footer() {
-
-

© {new Date().getFullYear()} Sky and Soil. All rights reserved.

-

Designed with precision.

+
+

+ © {new Date().getFullYear()} Sky and Soil | Powered by + + MetatronCube + + — All Rights Reserved +

diff --git a/src/components/Properties.tsx b/src/components/Properties.tsx index 6164cde..11e1cbb 100644 --- a/src/components/Properties.tsx +++ b/src/components/Properties.tsx @@ -100,7 +100,7 @@ export default function Properties({ layout = "slider" }: PropertiesProps) { } > {/* Image */} @@ -154,7 +154,7 @@ export default function Properties({ layout = "slider" }: PropertiesProps) {
{filteredProperties.map((property) => ( diff --git a/src/components/PropertyCard.tsx b/src/components/PropertyCard.tsx index 0a0ec24..ab72c5f 100644 --- a/src/components/PropertyCard.tsx +++ b/src/components/PropertyCard.tsx @@ -69,7 +69,7 @@ export default function PropertyCard({ property }: PropertyCardProps) { }; return ( - +
{/* Image Section */}
@@ -83,10 +83,10 @@ export default function PropertyCard({ property }: PropertyCardProps) { {/* Status Badge */} {property.status && (
{property.status}
@@ -97,8 +97,8 @@ export default function PropertyCard({ property }: PropertyCardProps) {