47 lines
1.8 KiB
TypeScript
47 lines
1.8 KiB
TypeScript
// Metro module 12201 (f12202).
|
|
import { useMemo } from "react";
|
|
import { PremiumSubscriptionSKUs } from "../../premium/PremiumConstants";
|
|
import { useRecommendationsForSingleUser } from "./useWishlistRecommendations";
|
|
import { useIsNitroWishlistingEnabled } from "../experiments/WishlistingNitroExperiment";
|
|
import { createNitroSuggestedSku } from "../WishlistUtils";
|
|
export function useAddToWishlistGridItems(a0) {
|
|
let c19727_4;
|
|
const { userId, wishlist, numWishlistItemsToRecommend: numWishlistItemsToRecommend2, maxWishlistItemsToShow = numWishlistItemsToRecommend2 } = a0;
|
|
const numWishlistItemsToRecommend = maxWishlistItemsToShow;
|
|
const source = a0.source;
|
|
c19727_4 = void 0;
|
|
const recommendationsForSingleUser = useRecommendationsForSingleUser({
|
|
userId,
|
|
numItems: numWishlistItemsToRecommend2,
|
|
source
|
|
});
|
|
const { recommendations, status } = recommendationsForSingleUser;
|
|
const isNitroWishlistingEnabled = useIsNitroWishlistingEnabled("add_to_wishlist_grid_suggested_nitro");
|
|
const memo = useMemo(() => {
|
|
const r5 = Set;
|
|
let r11 = wishlist == null ? void 0 : wishlist.items.map((item) => item.skuId);
|
|
if (r11 == null) {
|
|
r11 = [];
|
|
}
|
|
return new r5(r11);
|
|
}, [wishlist]);
|
|
const r28 = isNitroWishlistingEnabled && status === "success" && !memo.has(PremiumSubscriptionSKUs.TIER_2);
|
|
c19727_4 = r28;
|
|
return {
|
|
items: useMemo(() => {
|
|
const r11 = recommendations.filter((recommendation) => !memo.has(recommendation.id)).map((item) => ({
|
|
sku: item,
|
|
itemSource: "recommendation"
|
|
}));
|
|
if (c19727_4) {
|
|
r11.unshift({
|
|
sku: createNitroSuggestedSku(),
|
|
itemSource: "takeover"
|
|
});
|
|
}
|
|
return r11.slice(0, numWishlistItemsToRecommend);
|
|
}, [recommendations, memo, r28, numWishlistItemsToRecommend]),
|
|
status
|
|
};
|
|
}
|