1- import { useCallback , useEffect , useMemo , useState } from 'react' ;
1+ import { useCallback , useEffect , useMemo , useRef , useState } from 'react' ;
22import { useLazyQuery } from '@apollo/client' ;
33import mergeOperations from '../../util/shallowMerge' ;
44import defaultOperations from './wishlist.gql' ;
@@ -17,6 +17,7 @@ export const useWishlist = (props = {}) => {
1717 const [ page , setPage ] = useState ( 1 ) ;
1818 const [ isOpen , setIsOpen ] = useState ( ! isCollapsed ) ;
1919 const [ isFetchingMore , setIsFetchingMore ] = useState ( false ) ;
20+ const hasFetchedRef = useRef ( false ) ;
2021
2122 const [ fetchWishlistItems , queryResult ] = useLazyQuery (
2223 operations . getCustomerWishlistItems ,
@@ -30,7 +31,7 @@ export const useWishlist = (props = {}) => {
3031 }
3132 }
3233 ) ;
33- const { data, error, loading, fetchMore, called } = queryResult ;
34+ const { data, error, loading, fetchMore } = queryResult ;
3435
3536 const handleContentToggle = ( ) => {
3637 setIsOpen ( currentValue => ! currentValue ) ;
@@ -92,10 +93,11 @@ export const useWishlist = (props = {}) => {
9293 } , [ id , fetchMore , page ] ) ;
9394
9495 useEffect ( ( ) => {
95- if ( itemsCount >= 1 && isOpen === true && ! called ) {
96+ if ( itemsCount >= 1 && isOpen === true && ! hasFetchedRef . current ) {
97+ hasFetchedRef . current = true ;
9698 fetchWishlistItems ( ) ;
9799 }
98- } , [ itemsCount , isOpen , called ] ) ;
100+ } , [ itemsCount , isOpen , fetchWishlistItems ] ) ;
99101
100102 const items = useMemo ( ( ) => {
101103 if ( ! data || ! data . customer || ! data . customer . wishlist_v2 ) {
0 commit comments