import { Metadata } from 'next'; import { notFound } from 'next/navigation'; import { getProducts, getProductBySlug } from '@/content/products'; import { ProductGallery } from '@/components/shop/ProductGallery'; import { ProductInfo } from '@/components/shop/ProductInfo'; import { Tabs } from '@/components/shop/Tabs'; import { ProductCard } from '@/components/shop/ProductCard'; import { ArrowLeft } from 'lucide-react'; import Link from 'next/link'; interface ProductPageProps { params: { slug: string; }; } export async function generateStaticParams() { const products = getProducts(); return products.map((product) => ({ slug: product.slug, })); } export async function generateMetadata({ params }: ProductPageProps): Promise { const { slug } = await params; const product = getProductBySlug(slug); if (!product) { return { title: 'Produkt nie znaleziony' }; } return { title: `${product.brand} ${product.name} | Sklep AirProject`, description: product.description, alternates: { canonical: `/sklep/${product.slug}`, }, openGraph: { title: `${product.brand} ${product.name}`, description: product.description, type: 'website', images: [ { url: product.image || '/hero.jpg', }, ], }, }; } export default async function ProductPage({ params }: ProductPageProps) { const { slug } = await params; const product = getProductBySlug(slug); if (!product) { notFound(); } const allProducts = getProducts(); // Dobieramy 4 podobne produkty const relatedProducts = allProducts .filter(p => p.category === product.category && p.slug !== product.slug) .slice(0, 4); // JSON-LD const jsonLdProduct = { '@context': 'https://schema.org', '@type': 'Product', name: `${product.brand} ${product.name}`, image: product.image, description: product.description, brand: { '@type': 'Brand', name: product.brand, }, offers: { '@type': 'Offer', url: `https://aeroservice-demo.pl/sklep/${product.slug}`, priceCurrency: 'PLN', price: product.price, itemCondition: 'https://schema.org/NewCondition', availability: 'https://schema.org/InStock', }, }; const jsonLdBreadcrumb = { '@context': 'https://schema.org', '@type': 'BreadcrumbList', itemListElement: [ { '@type': 'ListItem', position: 1, name: 'Sklep', item: 'https://aeroservice-demo.pl/sklep', }, { '@type': 'ListItem', position: 2, name: product.name, item: `https://aeroservice-demo.pl/sklep/${product.slug}`, }, ], }; return (