Files
discord-decomp/modules/wishlists/hooks/useAddToWishlistGridItems.tsx
T
2026-11-01 12:12:55 +02:00

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
};
}