import type { Metadata } from "next";
import { redirect } from "next/navigation";
import { Container } from "@/components/Container";
import { PageHero } from "@/components/layout/PageHero";
import { ProductsListing } from "@/components/products/ProductsListing";
import { categoryHref, fetchCategoryById } from "@/lib/categories";
import { loadCategoryProducts } from "@/lib/products-list";
export const revalidate = 60;
export const metadata: Metadata = {
title: "محصولات",
description: "قطعات و لوازم خانگی فروشگاه برادران برقعی",
};
export default async function ProductsPage({
searchParams,
}: {
searchParams: Promise<{ page?: string; categoryId?: string; q?: string }>;
}) {
const params = await searchParams;
const page = Math.max(1, Number(params.page) || 1);
const categoryId = params.categoryId;
const q = params.q?.trim();
const name = q && q.length > 2 ? q : undefined;
// Legacy ?categoryId= → canonical /products/category/{id}/{slug}
if (categoryId) {
const category = await fetchCategoryById(categoryId);
if (category) {
const href = categoryHref(category);
const query = new URLSearchParams();
if (page > 1) query.set("page", String(page));
if (q) query.set("q", q);
const qs = query.toString();
redirect(qs ? `${href}?${qs}` : href);
}
}
const { products, total, pageCount } = await loadCategoryProducts({ page, pageSize: 20, name });
const heroTitle = q ? `جستجو: ${q}` : "محصولات";
return (
<>
{
const query = new URLSearchParams();
if (q) query.set("q", q);
if (number > 1) query.set("page", String(number));
const qs = query.toString();
return qs ? `/products?${qs}` : "/products";
}}
/>
>
);
}