diff --git a/packages/recommend-react/src/FrequentlyBoughtTogether.tsx b/packages/recommend-react/src/FrequentlyBoughtTogether.tsx index 49103a05..fc9d1a71 100644 --- a/packages/recommend-react/src/FrequentlyBoughtTogether.tsx +++ b/packages/recommend-react/src/FrequentlyBoughtTogether.tsx @@ -17,7 +17,7 @@ const UncontrolledFrequentlyBoughtTogether = createFrequentlyBoughtTogetherCompo export type UseFrequentlyBoughtTogetherProps = OptionalRecommendClient< GetFrequentlyBoughtTogetherProps ->; +> & { enabled?: boolean }; export type FrequentlyBoughtTogetherProps< TObject diff --git a/packages/recommend-react/src/RelatedProducts.tsx b/packages/recommend-react/src/RelatedProducts.tsx index a4922e3b..82aab051 100644 --- a/packages/recommend-react/src/RelatedProducts.tsx +++ b/packages/recommend-react/src/RelatedProducts.tsx @@ -15,7 +15,7 @@ const UncontrolledRelatedProducts = createRelatedProductsComponent({ export type UseRelatedProductsProps = OptionalRecommendClient< GetRelatedProductsProps ->; +> & { enabled?: boolean }; export type RelatedProductsProps = UseRelatedProductsProps & Omit< diff --git a/packages/recommend-react/src/TrendingFacets.tsx b/packages/recommend-react/src/TrendingFacets.tsx index 30db5421..d3d99b0f 100644 --- a/packages/recommend-react/src/TrendingFacets.tsx +++ b/packages/recommend-react/src/TrendingFacets.tsx @@ -13,7 +13,7 @@ const UncontrolledTrendingFacets = createTrendingFacetsComponent({ Fragment, }); -export type UseTrendingFacetsProps = OptionalRecommendClient; +export type UseTrendingFacetsProps = OptionalRecommendClient & { enabled?: boolean }; export type TrendingFacetsProps = UseTrendingFacetsProps & Omit< diff --git a/packages/recommend-react/src/TrendingItems.tsx b/packages/recommend-react/src/TrendingItems.tsx index 5b3bfe89..70b477c5 100644 --- a/packages/recommend-react/src/TrendingItems.tsx +++ b/packages/recommend-react/src/TrendingItems.tsx @@ -15,7 +15,7 @@ const UncontrolledTrendingItems = createTrendingItemsComponent({ export type UseTrendingItemsProps = OptionalRecommendClient< GetTrendingItemsProps ->; +> & { enabled?: boolean }; export type TrendingItemsProps = UseTrendingItemsProps & Omit< diff --git a/packages/recommend-react/src/useFrequentlyBoughtTogether.ts b/packages/recommend-react/src/useFrequentlyBoughtTogether.ts index 2694ac14..f4efc169 100644 --- a/packages/recommend-react/src/useFrequentlyBoughtTogether.ts +++ b/packages/recommend-react/src/useFrequentlyBoughtTogether.ts @@ -12,6 +12,7 @@ import { useStableValue } from './useStableValue'; import { useStatus } from './useStatus'; export function useFrequentlyBoughtTogether({ + enabled = true, indexName, maxRecommendations, objectIDs: userObjectIDs, @@ -40,6 +41,10 @@ export function useFrequentlyBoughtTogether({ }, [userTransformItems]); useEffect(() => { + if (!enabled) { + return; + } + const param = { indexName, maxRecommendations, @@ -92,6 +97,7 @@ export function useFrequentlyBoughtTogether({ }); return () => {}; }, [ + enabled, indexName, maxRecommendations, objectIDs, diff --git a/packages/recommend-react/src/useRecommendations.ts b/packages/recommend-react/src/useRecommendations.ts index 053ac7c6..5ab7a149 100644 --- a/packages/recommend-react/src/useRecommendations.ts +++ b/packages/recommend-react/src/useRecommendations.ts @@ -9,9 +9,12 @@ import { useAlgoliaAgent } from './useAlgoliaAgent'; import { useStableValue } from './useStableValue'; import { useStatus } from './useStatus'; -export type UseRecommendationsProps = GetRecommendationsProps; +export type UseRecommendationsProps< + TObject +> = GetRecommendationsProps & { enabled?: boolean }; export function useRecommendations({ + enabled = true, fallbackParameters: userFallbackParameters, indexName, maxRecommendations, @@ -38,6 +41,10 @@ export function useRecommendations({ }, [userTransformItems]); useEffect(() => { + if (!enabled) { + return; + } + setStatus('loading'); getRecommendations({ fallbackParameters, @@ -54,6 +61,7 @@ export function useRecommendations({ setStatus('idle'); }); }, [ + enabled, fallbackParameters, indexName, maxRecommendations, diff --git a/packages/recommend-react/src/useRelatedProducts.ts b/packages/recommend-react/src/useRelatedProducts.ts index 3545e72e..a0294dec 100644 --- a/packages/recommend-react/src/useRelatedProducts.ts +++ b/packages/recommend-react/src/useRelatedProducts.ts @@ -12,6 +12,7 @@ import { useStableValue } from './useStableValue'; import { useStatus } from './useStatus'; export function useRelatedProducts({ + enabled = true, fallbackParameters: userFallbackParameters, indexName, maxRecommendations, @@ -42,6 +43,10 @@ export function useRelatedProducts({ }, [userTransformItems]); useEffect(() => { + if (!enabled) { + return; + } + const param = { fallbackParameters, indexName, @@ -97,6 +102,7 @@ export function useRelatedProducts({ return () => {}; }, [ client, + enabled, fallbackParameters, hasProvider, indexName, diff --git a/packages/recommend-react/src/useTrendingFacets.ts b/packages/recommend-react/src/useTrendingFacets.ts index 6960dc1c..35f384be 100644 --- a/packages/recommend-react/src/useTrendingFacets.ts +++ b/packages/recommend-react/src/useTrendingFacets.ts @@ -12,6 +12,7 @@ import { useAlgoliaAgent } from './useAlgoliaAgent'; import { useStatus } from './useStatus'; export function useTrendingFacets({ + enabled = true, indexName, maxRecommendations, recommendClient, @@ -37,6 +38,10 @@ export function useTrendingFacets({ }, [userTransformItems]); useEffect(() => { + if (!enabled) { + return; + } + const param = { model: 'trending-facets' as TrendingModel, indexName, @@ -84,6 +89,7 @@ export function useTrendingFacets({ }); return () => {}; }, [ + enabled, indexName, maxRecommendations, client, diff --git a/packages/recommend-react/src/useTrendingItems.ts b/packages/recommend-react/src/useTrendingItems.ts index 2af6457a..3a1242b5 100644 --- a/packages/recommend-react/src/useTrendingItems.ts +++ b/packages/recommend-react/src/useTrendingItems.ts @@ -12,6 +12,7 @@ import { useStableValue } from './useStableValue'; import { useStatus } from './useStatus'; export function useTrendingItems({ + enabled = true, fallbackParameters: userFallbackParameters, indexName, maxRecommendations, @@ -42,6 +43,10 @@ export function useTrendingItems({ }, [userTransformItems]); useEffect(() => { + if (!enabled) { + return; + } + const param: BatchQuery = { model: 'trending-items', fallbackParameters, @@ -88,6 +93,7 @@ export function useTrendingItems({ }); return () => {}; }, [ + enabled, fallbackParameters, indexName, maxRecommendations,