176 lines
6.9 KiB
TypeScript
176 lines
6.9 KiB
TypeScript
// Metro module 7839 (f7840).
|
|
import { useState } from "react";
|
|
import SubscriptionStore from "../../stores/billing/SubscriptionStore";
|
|
import { PREMIUM_GROUP_30_PERCENT_3_MONTH_DISCOUNT_ID, PREMIUM_TIER_2_ANNUAL_20_PERCENT_DISCOUNT_ID, PREMIUM_TIER_2_ANNUAL_25_PERCENT_DISCOUNT_ID, PREMIUM_TIER_2_ANNUAL_V2_20_PERCENT_DISCOUNT_ID, PREMIUM_TIER_2_ANNUAL_V2_30_PERCENT_DISCOUNT_ID, PREMIUM_TIER_2_CHURN_1_MONTH_DISCOUNT_ID, PREMIUM_TIER_2_CHURN_3_MONTH_DISCOUNT_ID, PREMIUM_TIER_2_LIKELIHOOD_1_MONTH_30_PERCENT_DISCOUNT_ID, PREMIUM_TIER_2_LIKELIHOOD_1_MONTH_40_PERCENT_DISCOUNT_ID, PREMIUM_TIER_2_LIKELIHOOD_DISCOUNT_ID, PREMIUM_TIER_2_REACTIVATION_DISCOUNT_ID, PREMIUM_TIER_2_REENGAGEMENT_1_MONTH_40_PERCENT_DISCOUNT_ID } from "./PremiumConstants";
|
|
import { usePremiumTrialOffer } from "./hooks/usePremiumTrialOffer.android";
|
|
import { useHasActiveTrial } from "./PremiumSubscriptionTrialUtil";
|
|
import { usePremiumDiscountOffer, usePremiumGroupDiscountOffer } from "./hooks/usePremiumDiscountOffer.android";
|
|
import { useStateFromStores } from "../../_bundle/Module589";
|
|
import Module3771 from "../../_bundle/Module3771";
|
|
import useDiscountOffer from "./hooks/useDiscountOffer";
|
|
import { fetchChurnDiscountOffer } from "./UserOfferActionCreators";
|
|
import { InvoiceDiscountTypes } from "../../flow/Server";
|
|
import { useIsInReverseTrial } from "./ReverseTrialUtils.native";
|
|
let $mk79310 = function() {
|
|
return () => SubscriptionStore.getPremiumTypeSubscription();
|
|
};
|
|
const useHasDiscountApplied = () => {
|
|
const stateFromStores = useStateFromStores([SubscriptionStore], $mk79310());
|
|
const r13 = stateFromStores == null ? void 0 : stateFromStores.metadata?.active_discount_expires_at;
|
|
return r13 != null && Module3771(Date.now()) <= Module3771(r13);
|
|
};
|
|
export function useIsInPremiumOfferExperience() {
|
|
const premiumTrialOffer = usePremiumTrialOffer();
|
|
const hasActiveTrial = useHasActiveTrial();
|
|
const premiumDiscountOffer = usePremiumDiscountOffer();
|
|
const premiumGroupDiscountOffer = usePremiumGroupDiscountOffer();
|
|
const stateFromStores = useStateFromStores([SubscriptionStore], $mk79310());
|
|
const r33 = stateFromStores == null ? void 0 : stateFromStores.metadata?.active_discount_expires_at;
|
|
const r36 = r33 != null && Module3771(Date.now()) <= Module3771(r33);
|
|
return premiumTrialOffer != null || hasActiveTrial || premiumDiscountOffer != null || premiumGroupDiscountOffer != null || r36;
|
|
}
|
|
export { useHasDiscountApplied };
|
|
export function useActiveDiscountInfo() {
|
|
const stateFromStores = useStateFromStores([SubscriptionStore], () => SubscriptionStore.getPremiumTypeSubscription());
|
|
const discountId = stateFromStores == null ? void 0 : stateFromStores.metadata?.active_discount_id;
|
|
if (PREMIUM_TIER_2_CHURN_1_MONTH_DISCOUNT_ID !== discountId && PREMIUM_TIER_2_LIKELIHOOD_1_MONTH_30_PERCENT_DISCOUNT_ID !== discountId) {
|
|
if (PREMIUM_TIER_2_CHURN_3_MONTH_DISCOUNT_ID !== discountId && PREMIUM_TIER_2_LIKELIHOOD_DISCOUNT_ID !== discountId && PREMIUM_TIER_2_REACTIVATION_DISCOUNT_ID !== discountId) {
|
|
if (PREMIUM_TIER_2_LIKELIHOOD_1_MONTH_40_PERCENT_DISCOUNT_ID === discountId) {
|
|
return {
|
|
duration: 1,
|
|
percentage: 40,
|
|
discountId
|
|
};
|
|
}
|
|
if (PREMIUM_TIER_2_ANNUAL_20_PERCENT_DISCOUNT_ID === discountId) {
|
|
return {
|
|
duration: 1,
|
|
percentage: 20,
|
|
discountId
|
|
};
|
|
}
|
|
if (PREMIUM_TIER_2_ANNUAL_25_PERCENT_DISCOUNT_ID === discountId) {
|
|
return {
|
|
duration: 1,
|
|
percentage: 25,
|
|
discountId
|
|
};
|
|
}
|
|
if (PREMIUM_TIER_2_ANNUAL_V2_20_PERCENT_DISCOUNT_ID === discountId) {
|
|
return {
|
|
duration: 12,
|
|
percentage: 20,
|
|
discountId
|
|
};
|
|
}
|
|
if (PREMIUM_TIER_2_ANNUAL_V2_30_PERCENT_DISCOUNT_ID === discountId) {
|
|
return {
|
|
duration: 12,
|
|
percentage: 30,
|
|
discountId
|
|
};
|
|
}
|
|
if (PREMIUM_TIER_2_REENGAGEMENT_1_MONTH_40_PERCENT_DISCOUNT_ID === discountId) {
|
|
return {
|
|
duration: 1,
|
|
percentage: 40,
|
|
discountId
|
|
};
|
|
}
|
|
if (PREMIUM_GROUP_30_PERCENT_3_MONTH_DISCOUNT_ID === discountId) {
|
|
return {
|
|
duration: 3,
|
|
percentage: 30,
|
|
discountId
|
|
};
|
|
}
|
|
return void 0;
|
|
}
|
|
return {
|
|
duration: 3,
|
|
percentage: 30,
|
|
discountId
|
|
};
|
|
}
|
|
return {
|
|
duration: 1,
|
|
percentage: 30,
|
|
discountId
|
|
};
|
|
}
|
|
export function useFetchChurnUserDiscountOffer(a0) {
|
|
let churnUserDiscountOffer = useDiscountOffer(PREMIUM_TIER_2_CHURN_1_MONTH_DISCOUNT_ID);
|
|
const discountOffer = useDiscountOffer(PREMIUM_TIER_2_CHURN_3_MONTH_DISCOUNT_ID);
|
|
const [state, setState] = useState(false);
|
|
const [isFetchingChurnDiscountOffer, setState2] = useState(false);
|
|
const [churnUserDiscountOffer2, setState3] = useState(null);
|
|
if (churnUserDiscountOffer == null) {
|
|
churnUserDiscountOffer = discountOffer;
|
|
}
|
|
if (churnUserDiscountOffer == null) {
|
|
churnUserDiscountOffer = null;
|
|
}
|
|
if (churnUserDiscountOffer != null) {
|
|
return {
|
|
churnUserDiscountOffer,
|
|
isFetchingChurnDiscountOffer: false
|
|
};
|
|
}
|
|
if (a0) {
|
|
return {
|
|
churnUserDiscountOffer: churnUserDiscountOffer2,
|
|
isFetchingChurnDiscountOffer
|
|
};
|
|
}
|
|
if (!(isFetchingChurnDiscountOffer || state)) {
|
|
setState2(true);
|
|
fetchChurnDiscountOffer().then((result) => {
|
|
setState3(result);
|
|
setState(true);
|
|
setState2(false);
|
|
}).catch(() => {
|
|
setState(true);
|
|
setState2(false);
|
|
});
|
|
}
|
|
return {
|
|
churnUserDiscountOffer: churnUserDiscountOffer2,
|
|
isFetchingChurnDiscountOffer
|
|
};
|
|
}
|
|
export function useShouldFetchChurnOffer() {
|
|
const stateFromStores = useStateFromStores([SubscriptionStore], () => SubscriptionStore.getPremiumTypeSubscription());
|
|
const stateFromStores2 = useStateFromStores([SubscriptionStore], $mk79310());
|
|
const r24 = stateFromStores2 == null ? void 0 : stateFromStores2.metadata?.active_discount_expires_at;
|
|
const r27 = r24 != null && Module3771(Date.now()) <= Module3771(r24);
|
|
return stateFromStores !== null && stateFromStores.hasPremiumNitroMonthly && !r27 && !!!stateFromStores?.hasActiveTrial;
|
|
}
|
|
export function renewalInvoiceChurnDiscountInfo(a0) {
|
|
for (const invoiceItem of a0.invoiceItems) {
|
|
const r26 = invoiceItem.discounts.find((discount) => discount.type === InvoiceDiscountTypes.SUBSCRIPTION_PLAN);
|
|
if (r26 == null) {
|
|
continue;
|
|
}
|
|
const discount_id = r26.discount_id;
|
|
if (PREMIUM_TIER_2_CHURN_1_MONTH_DISCOUNT_ID !== discount_id) {
|
|
if (PREMIUM_TIER_2_CHURN_3_MONTH_DISCOUNT_ID !== discount_id) {
|
|
continue;
|
|
}
|
|
return {
|
|
duration: 3,
|
|
percentage: r26.percentage_amount,
|
|
discountId: r26.discount_id
|
|
};
|
|
}
|
|
return {
|
|
duration: 1,
|
|
percentage: r26.percentage_amount,
|
|
discountId: r26.discount_id
|
|
};
|
|
}
|
|
return null;
|
|
}
|
|
export function useIsNUXEligible() {
|
|
return useIsInReverseTrial();
|
|
}
|