import { getProducts } from "@/lib/saleor"; import { getTranslations, setRequestLocale } from "next-intl/server"; import Header from "@/components/layout/Header"; import Footer from "@/components/layout/Footer"; import ProductCard from "@/components/product/ProductCard"; import { ChevronDown } from "lucide-react"; import { getPageMetadata } from "@/lib/i18n/pageMetadata"; import { isValidLocale, DEFAULT_LOCALE, getSaleorLocale, type Locale } from "@/lib/i18n/locales"; interface ProductsPageProps { params: Promise<{ locale: string }>; } export async function generateMetadata({ params }: ProductsPageProps) { const { locale } = await params; const validLocale = isValidLocale(locale) ? locale : DEFAULT_LOCALE; const metadata = getPageMetadata(validLocale as Locale); return { title: metadata.products.title, description: metadata.products.description, }; } export default async function ProductsPage({ params }: ProductsPageProps) { const { locale } = await params; const validLocale = isValidLocale(locale) ? locale : DEFAULT_LOCALE; setRequestLocale(validLocale); const t = await getTranslations("Products"); const saleorLocale = getSaleorLocale(validLocale as Locale); const products = await getProducts(saleorLocale); return ( <>
{t("collection")}

{t("allProducts")}

{t("productsCount", { count: products.length })}
{products.length === 0 ? (

{t("noProducts")}

{t("checkBack")}

) : (
{products.map((product, index) => ( ))}
)}
); }