forked from crowetic/commerce
* Remove duplicated css rules. (#185) * Fix typo in the Marquee component (#176) Co-authored-by: Hugo Lopes <hugo.lopes@present-technologies.com> * Remove duplicated css rules. Fix invalid JSX props. Co-authored-by: Hugo Lopes <hugo.lopes@present-technologies.com> * Fix the body scroll when the sidebar is open (#184) * Fix typo in the Marquee component (#176) Co-authored-by: Hugo Lopes <hugo.lopes@present-technologies.com> * Fix the body scroll when the sidebar is open Co-authored-by: Hugo Lopes <hugo.lopes@present-technologies.com> * Remove duplicate class in the I18nWidget comp (#183) * Fix typo in the Marquee component (#176) Co-authored-by: Hugo Lopes <hugo.lopes@present-technologies.com> * Remove duplicate class name in the I18nWidget comp This PR removes a duplicate class name in the I18nWidget component. Co-authored-by: Hugo Lopes <hugo.rodrigues.lopes@gmail.com> Co-authored-by: Hugo Lopes <hugo.lopes@present-technologies.com> * add horizontal margin to pages when mobile screen (#180) * Add cart item options like color and size (#177) Co-authored-by: hlopes <hugo.lopes@present-technologies.com> * Changes Co-authored-by: Hugo Lopes <hugo.rodrigues.lopes@gmail.com> Co-authored-by: Hugo Lopes <hugo.lopes@present-technologies.com> Co-authored-by: Jamie Isaksen <jamie@jamie.no> Co-authored-by: Vinicius Zucatti <51221635+vczb@users.noreply.github.com>
21 lines
575 B
TypeScript
21 lines
575 B
TypeScript
export type SelectedOptions = {
|
|
size: string | null
|
|
color: string | null
|
|
}
|
|
|
|
export function getVariant(product: Product, opts: SelectedOptions) {
|
|
const variant = product.variants.find((variant) => {
|
|
return Object.entries(opts).every(([key, value]) =>
|
|
variant.options.find((option) => {
|
|
if (
|
|
option.__typename === 'MultipleChoiceOption' &&
|
|
option.displayName.toLowerCase() === key.toLowerCase()
|
|
) {
|
|
return option.values.find((v) => v.label.toLowerCase() === value)
|
|
}
|
|
})
|
|
)
|
|
})
|
|
return variant
|
|
}
|