Fixes add to cart for products with a single variant (#1127)

This commit is contained in:
Michael Novotny 2023-07-30 13:18:31 -05:00 committed by GitHub
parent cd8f4c6b4c
commit 7ae036b385
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6,7 +6,7 @@ import { addItem } from 'components/cart/actions';
import LoadingDots from 'components/loading-dots';
import { ProductVariant } from 'lib/shopify/types';
import { useRouter, useSearchParams } from 'next/navigation';
import { useEffect, useState, useTransition } from 'react';
import { useTransition } from 'react';
export function AddToCart({
variants,
@ -15,21 +15,16 @@ export function AddToCart({
variants: ProductVariant[];
availableForSale: boolean;
}) {
const [selectedVariantId, setSelectedVariantId] = useState<string | undefined>(undefined);
const router = useRouter();
const searchParams = useSearchParams();
const [isPending, startTransition] = useTransition();
useEffect(() => {
const variant = variants.find((variant: ProductVariant) =>
variant.selectedOptions.every(
(option) => option.value === searchParams.get(option.name.toLowerCase())
)
);
setSelectedVariantId(variant?.id);
}, [searchParams, variants, setSelectedVariantId]);
const defaultVariantId = variants.length === 1 ? variants[0]?.id : undefined;
const variant = variants.find((variant: ProductVariant) =>
variant.selectedOptions.every(
(option) => option.value === searchParams.get(option.name.toLowerCase())
)
);
const selectedVariantId = variant?.id || defaultVariantId;
const title = !availableForSale
? 'Out of stock'
: !selectedVariantId