forked from crowetic/commerce
Added comment about memoized cart
This commit is contained in:
parent
c782b3d0f0
commit
554d34b53b
@ -1,4 +1,4 @@
|
|||||||
import { createContext, useContext, FC, useCallback } from 'react'
|
import { createContext, useContext, FC, useCallback, useMemo } from 'react'
|
||||||
import useSWR, { responseInterface } from 'swr'
|
import useSWR, { responseInterface } from 'swr'
|
||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
import { useCommerce } from '..'
|
import { useCommerce } from '..'
|
||||||
@ -22,7 +22,9 @@ const CartProvider: FC<CartProviderProps> = ({ children, query, url }) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
return (
|
return (
|
||||||
// Avoid destructuring in `response` so we don't trigger the getters early
|
// Avoid destructuring the `response` obj from SWR so we don't trigger the getters
|
||||||
|
// early, also the result of useSWR is memoized and it's better to keep it that way
|
||||||
|
// so we don't re-render every consumer
|
||||||
<CartContext.Provider value={Object.assign(response, { isEmpty: true })}>
|
<CartContext.Provider value={Object.assign(response, { isEmpty: true })}>
|
||||||
{children}
|
{children}
|
||||||
</CartContext.Provider>
|
</CartContext.Provider>
|
||||||
|
@ -1,11 +1,4 @@
|
|||||||
import {
|
import { createContext, ReactNode, useContext, useMemo } from 'react'
|
||||||
createContext,
|
|
||||||
ReactNode,
|
|
||||||
useCallback,
|
|
||||||
useContext,
|
|
||||||
useMemo,
|
|
||||||
} from 'react'
|
|
||||||
import useSWR from 'swr'
|
|
||||||
|
|
||||||
const Commerce = createContext<CommerceConfig | null>(null)
|
const Commerce = createContext<CommerceConfig | null>(null)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user