Initial Sepehr Sanaat Next.js storefront with Meshkee catalog and SEO.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-14 17:33:49 +03:30
co-authored by Cursor
commit af22f753bf
137 changed files with 8759 additions and 0 deletions
+41
View File
@@ -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>
</>
);
}