import { getCollection } from 'lib/shopify'; import { Metadata } from 'next'; import { notFound } from 'next/navigation'; import Breadcrumb from 'components/breadcrumb'; import BreadcrumbHome from 'components/breadcrumb/breadcrumb-home'; import EngineSizes from 'components/engine-sizes'; import FAQ from 'components/faq'; import YMMFilters, { YMMFiltersPlaceholder } from 'components/filters'; import Manufacturers from 'components/home-page/manufacturers'; import ProductsList from 'components/layout/products-list'; import { getProductsInCollection } from 'components/layout/products-list/actions'; import FiltersContainer, { FiltersListPlaceholder } from 'components/layout/search/filters/filters-container'; import MobileFilters from 'components/layout/search/filters/mobile-filters'; import SubMenu, { SubMenuPlaceholder } from 'components/layout/search/filters/sub-menu'; import Header, { HeaderPlaceholder } from 'components/layout/search/header'; import HelpfulLinks from 'components/layout/search/helpful-links'; import ProductsGridPlaceholder from 'components/layout/search/placeholder'; import SortingMenu from 'components/layout/search/sorting-menu'; import Content from 'components/plp/content'; import TransmissionCode from 'components/transmission-codes'; import { Suspense } from 'react'; export async function generateMetadata({ params }: { params: { collection: string }; }): Promise { const collection = await getCollection({ handle: params.collection }); if (!collection) return notFound(); return { title: collection.seo?.title || collection.title, description: collection.seo?.description || collection.description || `${collection.title} products` }; } async function CategoryPage({ params, searchParams }: { params: { collection: string }; searchParams?: { [key: string]: string | string[] | undefined }; }) { const { products, filters, pageInfo } = await getProductsInCollection({ searchParams, collection: params.collection }); return ( <>
}>
}> } />
{products.length === 0 ? (

{`No products found in this collection`}

) : ( )} ); } const manufactureVariantMap: Record< string, 'engines' | 'transmissions' | 'remanufactured-engines' | 'transfer-cases' > = { transmissions: 'transmissions', engines: 'engines', 'remanufactured-engines': 'remanufactured-engines', 'transfer-cases': 'transfer-cases' }; export default async function CategorySearchPage(props: { params: { collection: string }; searchParams?: { [key: string]: string | string[] | undefined }; }) { const collectionHandle = props.params.collection; const [partType, make] = collectionHandle.split('_'); return ( <>
} key={`breadcrumb-${collectionHandle}`}>
} key={`header-${collectionHandle}`}>
} key={`products-${collectionHandle}`}>
{!make ? ( ) : null} ); }