diff --git a/framework/bigcommerce/cart/use-cart.tsx b/framework/bigcommerce/cart/use-cart.tsx index 8b984ab9f..ba005ec59 100644 --- a/framework/bigcommerce/cart/use-cart.tsx +++ b/framework/bigcommerce/cart/use-cart.tsx @@ -1,4 +1,4 @@ import useCommerceCart, { UseCart } from '@commerce/cart/use-cart' -import { BigcommerceProvider } from '..' +import type { BigcommerceProvider } from '..' export default useCommerceCart as UseCart diff --git a/framework/bigcommerce/index.tsx b/framework/bigcommerce/index.tsx index e1584c9e0..a4271226e 100644 --- a/framework/bigcommerce/index.tsx +++ b/framework/bigcommerce/index.tsx @@ -49,7 +49,13 @@ const fetcher: Fetcher = async ({ throw await getError(res) } -const useCart: HookHandler = { +const useCart: HookHandler< + Cart | null, + CartInput, + any, + any, + { isEmpty?: boolean } +> = { fetchOptions: { url: '/api/bigcommerce/cart', method: 'GET', diff --git a/framework/commerce/index.tsx b/framework/commerce/index.tsx index e52aa539d..bc660b1df 100644 --- a/framework/commerce/index.tsx +++ b/framework/commerce/index.tsx @@ -16,29 +16,19 @@ const Commerce = createContext | {}>({}) export type Provider = CommerceConfig & { cart?: { - useCart?: HookHandler + useCart?: HookHandler } cartNormalizer(data: any): Cart } export type HookHandler = { - swrOptions?: SwrOptions - onResponse?( - response: ResponseState - ): ResponseState & State + swrOptions?: SwrOptions + onResponse?(response: ResponseState): ResponseState & State onMutation?: any fetchOptions?: HookFetcherOptions -} & ( - | // TODO: Maybe the normalizer is not required if it's used by the API route directly? - { - fetcher: HookFetcherFn - normalizer?(data: Result): Data - } - | { - fetcher?: never - normalizer(data: Result): Data - } -) + fetcher?: HookFetcherFn + normalizer?(data: Result): Data +} export type CommerceProps

= { children?: ReactNode