Removed the CartProvider

This commit is contained in:
Luis Alvarez 2020-10-09 11:26:39 -05:00
parent b5ee7feb46
commit 7758ea3199
2 changed files with 3 additions and 19 deletions

View File

@ -1,10 +1,8 @@
import { CartProvider, useCart as useCommerceCart } from '@lib/commerce/cart'
import { useCart as useCommerceCart } from '@lib/commerce/cart'
import type { Cart } from '../api/cart'
export type { Cart }
export { CartProvider }
export function useCart() {
const cart = useCommerceCart<Cart | null>()

View File

@ -1,4 +1,3 @@
import { FC, createContext, useContext, useMemo } from 'react'
import useSWR, { responseInterface } from 'swr'
import Cookies from 'js-cookie'
import { useCommerce } from '..'
@ -9,28 +8,15 @@ export type CartResponse<C> = responseInterface<C, Error> & {
isEmpty: boolean
}
export type CartProviderProps = {
query?: string
url?: string
}
const CartContext = createContext<CartProviderProps>({})
const CartProvider: FC<CartProviderProps> = ({ children, query, url }) => {
const value = useMemo(() => ({ query, url }), [query, url])
return <CartContext.Provider value={value}>{children}</CartContext.Provider>
}
function useCart<C>() {
const { fetcherRef, cartCookie } = useCommerce()
const fetcher = (url?: string, query?: string) =>
Cookies.get(cartCookie) ? fetcherRef.current({ url, query }) : null
const { url = CART_API, query } = useContext(CartContext)
const response = useSWR([url, query], fetcher, {
const response = useSWR([CART_API, undefined], fetcher, {
revalidateOnFocus: false,
})
return Object.assign(response, { isEmpty: true }) as CartResponse<C>
}
export { CartProvider, useCart }
export { useCart }