import { notFound } from 'next/navigation'; import { MDXRemote } from 'next-mdx-remote/rsc'; import { getProductBySlug, getAllProducts } from '@/lib/mdx'; import ProductTechnicalData from '@/components/ProductTechnicalData'; import ProductTabs from '@/components/ProductTabs'; import RequestQuoteForm from '@/components/RequestQuoteForm'; import RelatedProducts from '@/components/RelatedProducts'; import Link from 'next/link'; interface ProductPageProps { params: { locale: string; slug: string[]; }; } const components = { ProductTechnicalData, ProductTabs, p: (props: any) =>
, table: (props: any) => (
), }; export default async function ProductPage({ params }: ProductPageProps) { const { locale, slug } = params; const productSlug = slug[slug.length - 1]; // Check if it's a category page const categories = ['low-voltage-cables', 'medium-voltage-cables', 'high-voltage-cables', 'solar-cables']; if (categories.includes(productSlug)) { const allProducts = await getAllProducts(locale); const categoryTitle = productSlug.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); // Filter products for this category // Note: MDX categories are like "Low Voltage Cables" const filteredProducts = allProducts.filter(p => p.frontmatter.categories.some(cat => cat.toLowerCase().replace(/\s+/g, '-') === productSlug) ); return (

{categoryTitle}

{filteredProducts.map((product) => (
{product.frontmatter.images?.[0] && ( {product.frontmatter.title} )}

{product.frontmatter.title}

{product.frontmatter.description}

))}
); } const product = await getProductBySlug(productSlug, locale); if (!product) { notFound(); } return (

{product.frontmatter.title}

{product.frontmatter.categories.map((cat, idx) => ( {cat} ))}
{/* Main Content Area */}
{/* Related Products */}
{/* Image Gallery */} {product.frontmatter.images && product.frontmatter.images.length > 0 && (
{product.frontmatter.title}
{product.frontmatter.images.length > 1 && (
{product.frontmatter.images.slice(1, 5).map((img, idx) => (
))}
)}
)} {/* Request Quote Form */}
); }