'use client'; import clsx from 'clsx'; import { useProduct, useUpdateURL } from 'components/product/product-context'; import { Attribute } from 'lib/woocomerce/models/base'; import { ProductVariations } from 'lib/woocomerce/models/product'; type FilterVariation = { name: string | undefined; values: string[] | undefined; }; export function VariantSelector({ options, variations, }: { options: Partial[]; variations: ProductVariations[]; }) { const { state, updateOption } = useProduct(); const updateURL = useUpdateURL(); const combinations: FilterVariation[] = options?.map(attribute => ({ name: attribute.name, values: attribute?.options?.map(option => option), })); return combinations.map((option) => (
{option.name}
{option?.values?.map((value) => { const optionNameLowerCase = option?.name?.toLowerCase(); // The option is active if it's in the selected options. const isActive = optionNameLowerCase ? state[optionNameLowerCase] === value : false; if (!optionNameLowerCase) return null; return ( ); })}
)); }