Initial Sepehr Sanaat Next.js storefront with Meshkee catalog and SEO.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import type { Metadata } from "next";
|
||||
import { PageHeader } from "@/components/ui/PageHeader";
|
||||
import { Container } from "@/components/ui/Container";
|
||||
import { ProductGrid } from "@/components/catalog/ProductGrid";
|
||||
import { getProducts, getStoreItems } from "@/lib/api";
|
||||
import { mapProductCard, mapStoreItemCard } from "@/lib/catalog";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "محصولات",
|
||||
description: "تجهیزات تهویه مطبوع، سرمایش و گرمایش سپهر صنعت.",
|
||||
alternates: { canonical: "/products" },
|
||||
};
|
||||
|
||||
export default async function ProductsPage({
|
||||
searchParams,
|
||||
}: {
|
||||
searchParams: Promise<{ q?: string }>;
|
||||
}) {
|
||||
const { q } = await searchParams;
|
||||
const store = await getStoreItems({ pageSize: 24, name: q });
|
||||
const products =
|
||||
store.total > 0
|
||||
? store.items.map(mapStoreItemCard)
|
||||
: (await getProducts({ pageSize: 24, name: q })).items.map(mapProductCard);
|
||||
|
||||
return (
|
||||
<>
|
||||
<PageHeader
|
||||
title="محصولات"
|
||||
titleEn="PRODUCTS"
|
||||
description="تجهیزات تهویه مطبوع، سرمایش و گرمایش سپهر صنعت"
|
||||
/>
|
||||
<Container className="py-10">
|
||||
{q ? (
|
||||
<p className="mb-6 text-sm text-muted">نتایج جستجو برای «{q}»</p>
|
||||
) : null}
|
||||
<ProductGrid products={products} />
|
||||
</Container>
|
||||
</>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user