diff --git a/framework/bigcommerce/cart/use-add-item.tsx b/framework/bigcommerce/cart/use-add-item.tsx index ab8e634a2..38ac69650 100644 --- a/framework/bigcommerce/cart/use-add-item.tsx +++ b/framework/bigcommerce/cart/use-add-item.tsx @@ -2,8 +2,13 @@ import { useCallback } from 'react' import type { HookFetcher } from '@commerce/utils/types' import { CommerceError } from '@commerce/utils/errors' import useCartAddItem from '@commerce/cart/use-add-item' -import type { ItemBody, AddItemBody } from '../api/cart' -import useCart, { Cart } from './use-cart' +import { normalizeCart } from '../lib/normalize' +import type { + ItemBody, + AddItemBody, + Cart as BigcommerceCart, +} from '../api/cart' +import useCart from './use-cart' const defaultOpts = { url: '/api/bigcommerce/cart', @@ -12,7 +17,7 @@ const defaultOpts = { export type AddItemInput = ItemBody -export const fetcher: HookFetcher = ( +export const fetcher: HookFetcher = async ( options, { item }, fetch @@ -26,11 +31,13 @@ export const fetcher: HookFetcher = ( }) } - return fetch({ + const data = await fetch({ ...defaultOpts, ...options, body: { item }, }) + + return normalizeCart(data) } export function extendHook(customFetcher: typeof fetcher) { diff --git a/framework/bigcommerce/cart/use-cart.tsx b/framework/bigcommerce/cart/use-cart.tsx index 75d81a1fb..8e008c65a 100644 --- a/framework/bigcommerce/cart/use-cart.tsx +++ b/framework/bigcommerce/cart/use-cart.tsx @@ -1,8 +1,8 @@ -import { normalizeCart } from '../lib/normalize' import type { HookFetcher } from '@commerce/utils/types' import type { SwrOptions } from '@commerce/utils/use-data' import useResponse from '@commerce/utils/use-response' import useCommerceCart, { CartInput } from '@commerce/cart/use-cart' +import { normalizeCart } from '../lib/normalize' import type { Cart as BigcommerceCart } from '../api/cart' const defaultOpts = { diff --git a/framework/bigcommerce/cart/use-remove-item.tsx b/framework/bigcommerce/cart/use-remove-item.tsx index e38c267af..6f25c0c9e 100644 --- a/framework/bigcommerce/cart/use-remove-item.tsx +++ b/framework/bigcommerce/cart/use-remove-item.tsx @@ -1,8 +1,9 @@ import { useCallback } from 'react' import { HookFetcher } from '@commerce/utils/types' import useCartRemoveItem from '@commerce/cart/use-remove-item' -import type { RemoveItemBody } from '../api/cart' -import useCart, { Cart } from './use-cart' +import { normalizeCart } from '../lib/normalize' +import type { RemoveItemBody, Cart as BigcommerceCart } from '../api/cart' +import useCart from './use-cart' const defaultOpts = { url: '/api/bigcommerce/cart', @@ -13,16 +14,17 @@ export type RemoveItemInput = { id: string } -export const fetcher: HookFetcher = ( +export const fetcher: HookFetcher = async ( options, { itemId }, fetch ) => { - return fetch({ + const data = await fetch({ ...defaultOpts, ...options, body: { itemId }, }) + return normalizeCart(data) } export function extendHook(customFetcher: typeof fetcher) { diff --git a/framework/bigcommerce/cart/use-update-item.tsx b/framework/bigcommerce/cart/use-update-item.tsx index ca5703505..88a5b8c9d 100644 --- a/framework/bigcommerce/cart/use-update-item.tsx +++ b/framework/bigcommerce/cart/use-update-item.tsx @@ -3,9 +3,14 @@ import debounce from 'lodash.debounce' import type { HookFetcher } from '@commerce/utils/types' import { CommerceError } from '@commerce/utils/errors' import useCartUpdateItem from '@commerce/cart/use-update-item' -import type { ItemBody, UpdateItemBody } from '../api/cart' +import { normalizeCart } from '../lib/normalize' +import type { + ItemBody, + UpdateItemBody, + Cart as BigcommerceCart, +} from '../api/cart' import { fetcher as removeFetcher } from './use-remove-item' -import useCart, { Cart } from './use-cart' +import useCart from './use-cart' const defaultOpts = { url: '/api/bigcommerce/cart', @@ -14,7 +19,7 @@ const defaultOpts = { export type UpdateItemInput = Partial<{ id: string } & ItemBody> -export const fetcher: HookFetcher = ( +export const fetcher: HookFetcher = async ( options, { itemId, item }, fetch @@ -30,11 +35,13 @@ export const fetcher: HookFetcher = ( }) } - return fetch({ + const data = await fetch({ ...defaultOpts, ...options, body: { itemId, item }, }) + + return normalizeCart(data) } function extendHook(customFetcher: typeof fetcher, cfg?: { wait?: number }) {