94 lines
4.3 KiB
TypeScript
94 lines
4.3 KiB
TypeScript
// Metro module 8807 (f8808).
|
|
import { useState, useRef, useEffect } from "react";
|
|
import PromotionsStore from "../../../promotions/PromotionsStore";
|
|
import { SubscriptionPlans } from "../../../PremiumConstants";
|
|
import { useStateFromStoresArray } from "../../../../../_bundle/Module589";
|
|
import { useFetchPurchases } from "../../../../collectibles/hooks/useFetchCollectiblesCategoriesAndPurchases";
|
|
import { GiftPromotionReminderExperiment } from "../../experiments/GiftPromotionReminderExperiment";
|
|
import { MarketingComponentType } from "../../../../../_bundle/Module6567";
|
|
import { UNSAFE_isSnowflakeBoundDismissibleContentDismissed } from "../../../../dismissible_content/DismissibleContentUnsafeUtils";
|
|
import { DismissibleContent } from "../../../../../_bundle/Module1358";
|
|
export function useFetchClaimableGiftingPromotionRewardSkuIds() {
|
|
let purchases, hasPreviouslyFetched, fetchPurchasesError, ref;
|
|
const [state, setState] = useState();
|
|
const stateFromStoresArray = useStateFromStoresArray([PromotionsStore], () => PromotionsStore.getGiftPromotionRewardSkuIds());
|
|
const fetchPurchases = useFetchPurchases();
|
|
purchases = fetchPurchases.purchases;
|
|
hasPreviouslyFetched = fetchPurchases.hasPreviouslyFetched;
|
|
fetchPurchasesError = fetchPurchases.fetchPurchasesError;
|
|
ref = useRef(false);
|
|
useEffect(() => {
|
|
if (hasPreviouslyFetched && !ref.current && stateFromStoresArray.length > 0) {
|
|
setState(fetchPurchasesError == null ? stateFromStoresArray.filter((item) => purchases.get(item) == null) : []);
|
|
ref.current = true;
|
|
}
|
|
}, [stateFromStoresArray, purchases, hasPreviouslyFetched, fetchPurchasesError]);
|
|
return state;
|
|
}
|
|
export function getRewardAssetIdMap(a0) {
|
|
const map = new Map();
|
|
let c16793_0 = map;
|
|
a0.forEach((item) => c16793_0.set(item.skuId, item.assetId));
|
|
return map;
|
|
}
|
|
export function useShouldShowSelectFreeSkuStep(a0, a1, a2) {
|
|
const r12 = [SubscriptionPlans.PREMIUM_YEAR_TIER_2, SubscriptionPlans.PREMIUM_MONTH_TIER_2].includes(a0?.id);
|
|
const r13 = a2 != null && a2.length >= 1;
|
|
return (a1 ? r12 : a1) && r13;
|
|
}
|
|
export function useShouldAutoSelectGiftingPromotionReward(a0, a1, a2) {
|
|
const r12 = [SubscriptionPlans.PREMIUM_YEAR_TIER_2, SubscriptionPlans.PREMIUM_MONTH_TIER_2].includes(a0?.id);
|
|
return a2 != null && a2.length === 1 && r12 && a1;
|
|
}
|
|
export function useIsPlanEligibleForGiftingPromotion(a0) {
|
|
return [SubscriptionPlans.PREMIUM_YEAR_TIER_2, SubscriptionPlans.PREMIUM_MONTH_TIER_2].includes(a0?.id);
|
|
}
|
|
export function createGradientStyle(a0, a1) {
|
|
if (a0 != null) {
|
|
const r4 = a1 == null ? {} : a1;
|
|
const { reverse = false, colorStops, defaultAngle = 78.98 } = r4;
|
|
const r22 = Array.isArray(a0) ? a0 : a0.gradient;
|
|
const r25 = Array.isArray(a0) ? defaultAngle : a0.angle != null ? a0.angle : defaultAngle;
|
|
return {
|
|
background: `linear-gradient(${reverse ? (r25 + 180) % 360 : r25}deg, ${colorStops != null ? r22.map((item, index) => `${item} ${colorStops[index]}%`).join(", ") : r22.join(", ")})`
|
|
};
|
|
}
|
|
}
|
|
export function createBackgroundStyle(a0) {
|
|
if (a0 != null) {
|
|
return {
|
|
backgroundImage: `url(${a0})`,
|
|
backgroundSize: "cover",
|
|
backgroundPosition: "center",
|
|
backgroundRepeat: "no-repeat"
|
|
};
|
|
}
|
|
}
|
|
export function combinePromotionStyles(a0, a1) {
|
|
if (a0 != null && a1 != null) {
|
|
a0.backgroundImage = `${a0.backgroundImage}, ${a1.background}`;
|
|
a0.backgroundColor = "lightgray";
|
|
a0.backgroundRepeat = "no-repeat, no-repeat";
|
|
if (a0.backgroundSize == null) {
|
|
a0.backgroundSize = "auto 110%, auto";
|
|
}
|
|
if (a0.backgroundPosition == null) {
|
|
a0.backgroundPosition = "right 90% center, 0% 0%";
|
|
}
|
|
return a0;
|
|
}
|
|
return a0 == null ? a1 == null ? {} : a1 : a0;
|
|
}
|
|
export function shouldShowGiftPromotionReminderNotice() {
|
|
if (GiftPromotionReminderExperiment.getConfig({
|
|
location: "shouldShowGiftPromotionReminderNotice"
|
|
}).enabled) {
|
|
if (PromotionsStore.getMarketingComponentByType(MarketingComponentType.GIFT_REMINDER_NAGBAR) == null) {
|
|
return false;
|
|
}
|
|
const id = PromotionsStore.getGiftPromotion()?.id;
|
|
return id != null && (!!UNSAFE_isSnowflakeBoundDismissibleContentDismissed(DismissibleContent.GIFTING_PROMOTION_DESKTOP_FIRST_TIME_COACHMARK, id).isDismissed && !UNSAFE_isSnowflakeBoundDismissibleContentDismissed(DismissibleContent.GIFTING_PROMOTION_REMINDER, id).isDismissed);
|
|
}
|
|
return false;
|
|
}
|