Initial commit: website
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import { notFound } from "next/navigation";
|
||||
import Header from "@/components/Header";
|
||||
import Footer from "@/components/Footer";
|
||||
import BusinessDetailView from "@/components/BusinessDetail";
|
||||
import {
|
||||
getAllBusinessSlugs,
|
||||
getBusinessBySlug,
|
||||
} from "@/data/business";
|
||||
import styles from "./page.module.css";
|
||||
|
||||
export function generateStaticParams() {
|
||||
return getAllBusinessSlugs().map((slug) => ({ slug }));
|
||||
}
|
||||
|
||||
export async function generateMetadata({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ slug: string }>;
|
||||
}) {
|
||||
const { slug } = await params;
|
||||
const business = getBusinessBySlug(slug);
|
||||
if (!business) {
|
||||
return { title: "Business | WilaSpace" };
|
||||
}
|
||||
return {
|
||||
title: `${business.name} | WilaSpace`,
|
||||
description: business.description.slice(0, 140),
|
||||
};
|
||||
}
|
||||
|
||||
export default async function BusinessDetailPage({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ slug: string }>;
|
||||
}) {
|
||||
const { slug } = await params;
|
||||
const business = getBusinessBySlug(slug);
|
||||
|
||||
if (!business) {
|
||||
notFound();
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={styles.page}>
|
||||
<Header />
|
||||
<main className={styles.shell}>
|
||||
<BusinessDetailView business={business} />
|
||||
</main>
|
||||
<Footer />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user