import { GlobeAltIcon, StarIcon } from '@heroicons/react/24/outline'; import { Metaobject } from 'lib/shopify/types'; import kebabCase from 'lodash.kebabcase'; import ButtonGroup from './button-group'; import ManufacturerItem from './item'; type ManufacturersGridProps = { manufacturers: Metaobject[]; variant?: 'engines' | 'transmissions' | 'home' | 'remanufactured-engines' | 'transfer-cases'; }; const ManufacturersGrid = ({ manufacturers, variant = 'home' }: ManufacturersGridProps) => { const popularManufacturers = manufacturers.filter( (manufacturer) => manufacturer.is_popular === 'true' ); return ( <div className="h-auto max-h-[700px] w-full overflow-auto rounded px-10 py-6 shadow"> {popularManufacturers.length ? ( <> <p className="flex items-center gap-2"> <StarIcon className="size-4" /> <span className="font-medium text-blue-800">Popular Manufacturers</span> </p> <div className="mt-6 grid grid-cols-2 gap-x-12 gap-y-5 md:grid-cols-3 md:gap-y-8 lg:grid-cols-4 xl:grid-cols-5"> {popularManufacturers.map((manufacturer) => ( <div key={manufacturer.id} className="flex flex-col gap-2"> {variant === 'home' ? ( <ManufacturerItem manufacturer={manufacturer} /> ) : ( <ManufacturerItem manufacturer={manufacturer} className="rounded border border-primary px-2 py-1" href={`/${variant}/${kebabCase(manufacturer.name)}`} /> )} {variant === 'home' && <ButtonGroup manufacturer={manufacturer} />} </div> ))} </div> <hr className="my-10 w-full" /> </> ) : null} <p className="flex items-center gap-2"> <GlobeAltIcon className="size-4" /> <span className="font-medium text-blue-800">All Manufacturers</span> </p> <div className="mt-6 grid grid-cols-2 gap-x-12 gap-y-5 md:grid-cols-3 md:gap-y-8 lg:grid-cols-4 xl:grid-cols-5"> {manufacturers .toSorted((a, b) => a.display_name!.localeCompare(b.display_name!)) .map((manufacturer) => ( <div key={manufacturer.id} className="flex flex-col gap-2"> {variant === 'home' ? ( <ManufacturerItem manufacturer={manufacturer} /> ) : ( <ManufacturerItem manufacturer={manufacturer} className="rounded border border-primary px-2 py-1" href={`/${variant}/${kebabCase(manufacturer.name)}`} /> )} {variant === 'home' && <ButtonGroup manufacturer={manufacturer} />} </div> ))} </div> </div> ); }; export default ManufacturersGrid;