diff --git a/components/product/ProductView/ProductView.tsx b/components/product/ProductView/ProductView.tsx index db4c93baf..8f765898c 100644 --- a/components/product/ProductView/ProductView.tsx +++ b/components/product/ProductView/ProductView.tsx @@ -36,8 +36,6 @@ const ProductView: FC = ({ product, productData, className }) => { }) } - console.log('PRODUCT', product) - return (
diff --git a/lib/bigcommerce/cart/use-add-item.tsx b/lib/bigcommerce/cart/use-add-item.tsx index becf2ad05..3b5d5541a 100644 --- a/lib/bigcommerce/cart/use-add-item.tsx +++ b/lib/bigcommerce/cart/use-add-item.tsx @@ -1,7 +1,7 @@ import type { Fetcher } from '@lib/commerce' import { default as useCartAddItem } from '@lib/commerce/cart/use-add-item' import type { Item } from '../api/cart' -import { Cart } from '.' +import { Cart, useCart } from '.' export type { Item } @@ -19,5 +19,13 @@ function fetcher(fetch: Fetcher, { item }: { item: Item }) { } export default function useAddItem() { - return useCartAddItem(fetcher) + const { mutate } = useCart() + const fn = useCartAddItem(fetcher) + const addItem: typeof fn = async (input) => { + const data = await fn(input) + mutate(data) + return data + } + + return addItem } diff --git a/lib/bigcommerce/index.tsx b/lib/bigcommerce/index.tsx index d4c8acb39..fb2d15757 100644 --- a/lib/bigcommerce/index.tsx +++ b/lib/bigcommerce/index.tsx @@ -34,7 +34,6 @@ export const bigcommerceConfig: CommerceConfig = { if (res.ok) { const { data } = await res.json() - console.log('DATA', data) return data } diff --git a/lib/commerce/cart/index.tsx b/lib/commerce/cart/index.tsx index dad90d7a2..76ef50c46 100644 --- a/lib/commerce/cart/index.tsx +++ b/lib/commerce/cart/index.tsx @@ -1,4 +1,4 @@ -import { createContext, useContext, FC } from 'react' +import { createContext, useContext, FC, useCallback } from 'react' import useSWR, { responseInterface } from 'swr' import Cookies from 'js-cookie' import { useCommerce } from '..' @@ -17,10 +17,13 @@ const CartProvider: FC = ({ children, query, url }) => { const { fetcher: fetch, cartCookie } = useCommerce() const fetcher = (url?: string, query?: string) => fetch({ url, query }) const cartId = Cookies.get(cartCookie) - const response = useSWR(() => (cartId ? [url, query] : null), fetcher) + const response = useSWR(() => (cartId ? [url, query] : null), fetcher, { + revalidateOnFocus: false, + }) return ( - + // Avoid destructuring in `response` so we don't trigger the getters early + {children} ) diff --git a/lib/commerce/cart/use-add-item.tsx b/lib/commerce/cart/use-add-item.tsx index 05ca475de..105350cb2 100644 --- a/lib/commerce/cart/use-add-item.tsx +++ b/lib/commerce/cart/use-add-item.tsx @@ -6,11 +6,6 @@ export default function useAddItem( const { fetcher: fetch } = useCommerce() return async function addItem(input: Input) { - const data = fetcher(fetch, input) - - // TODO: Using the state of the cart provider, update the saved cart - // return mutate('/api/cart') - - return data + return fetcher(fetch, input) } }