81 lines
3.5 KiB
TypeScript
81 lines
3.5 KiB
TypeScript
// Metro module 15762 (f15763).
|
|
import { useMemo, useEffect, useCallback } from "react";
|
|
import { PremiumTypes, SubscriptionPlanInfo } from "../../PremiumConstants";
|
|
import * as _Constants from "../../../../Constants";
|
|
import { AnalyticEvents } from "../../../../Constants";
|
|
import { ContentDismissActionType } from "../../../dismissible_content/DismissibleContentConstants";
|
|
import useAnalyticsLocations from "../../../app_analytics/useAnalyticsLocations";
|
|
import AnalyticsLocation from "../../../app_analytics/AnalyticsLocation";
|
|
import AnalyticsUtils from "../../../../utils/AnalyticsUtils";
|
|
import { acknowledgeUserOffer } from "../../UserOfferActionCreators";
|
|
import openPremiumModal from "../../../../components_native/premium/openPremiumModal";
|
|
import openPremiumPlanSelectionActionSheet from "../openPremiumPlanSelectionActionSheet";
|
|
import { BottomSheet } from "../../../../design/components/Sheet/native/BottomSheet.native";
|
|
import PremiumDiscountOfferActionSheetContent from "./PremiumDiscountOfferActionSheetContent";
|
|
const { AnalyticsObjectTypes, AnalyticsPages, AnalyticsSections } = _Constants;
|
|
const analyticsLocation = {
|
|
page: AnalyticsPages.USER_SETTINGS,
|
|
section: AnalyticsSections.SETTINGS_PREMIUM,
|
|
objectType: AnalyticsObjectTypes.BUY
|
|
};
|
|
export default ({ markAsDismissed, userDiscountOffer }) => {
|
|
const analyticsLocations = useAnalyticsLocations(AnalyticsLocation.PREMIUM_DISCOUNT_OFFER_ACTION_SHEET).analyticsLocations;
|
|
const memo = useMemo(() => {
|
|
const r1 = userDiscountOffer == null;
|
|
let r5 = void 0;
|
|
if (!r1) {
|
|
const discount = userDiscountOffer.discount;
|
|
const r7 = discount == null;
|
|
r5 = void 0;
|
|
if (!r7) {
|
|
const planIds = discount.planIds;
|
|
r5 = planIds == null ? void 0 : planIds[0];
|
|
}
|
|
}
|
|
let r14 = (r5 != null ? SubscriptionPlanInfo[r5] : null)?.premiumType;
|
|
if (r14 == null) {
|
|
r14 = PremiumTypes.TIER_2;
|
|
}
|
|
return r14;
|
|
}, [userDiscountOffer]);
|
|
useEffect(() => {
|
|
if (userDiscountOffer != null) {
|
|
AnalyticsUtils.track(AnalyticEvents.PREMIUM_DISCOUNT_OFFER_ACTION_SHEET_VIEWED, {
|
|
location: analyticsLocations,
|
|
discount_offer_id: userDiscountOffer.id
|
|
});
|
|
acknowledgeUserOffer(void 0, userDiscountOffer);
|
|
}
|
|
}, []);
|
|
useEffect(() => {
|
|
if (userDiscountOffer == null) {
|
|
markAsDismissed(ContentDismissActionType.AUTO_DISMISS);
|
|
}
|
|
}, [userDiscountOffer, markAsDismissed]);
|
|
const callback = useCallback(() => {
|
|
AnalyticsUtils.track(AnalyticEvents.PREMIUM_DISCOUNT_OFFER_ACTION_SHEET_DISMISSED, {
|
|
location: analyticsLocations,
|
|
discount_offer_id: userDiscountOffer?.id
|
|
});
|
|
markAsDismissed(ContentDismissActionType.USER_DISMISS);
|
|
}, [analyticsLocations, markAsDismissed, userDiscountOffer]);
|
|
const callback2 = useCallback(() => {
|
|
AnalyticsUtils.track(AnalyticEvents.PREMIUM_DISCOUNT_OFFER_ACTION_SHEET_CTA_CLICKED, {
|
|
location: analyticsLocations,
|
|
discount_offer_id: userDiscountOffer?.id
|
|
});
|
|
markAsDismissed(ContentDismissActionType.TAKE_ACTION);
|
|
openPremiumModal({
|
|
analyticsLocations
|
|
});
|
|
openPremiumPlanSelectionActionSheet({
|
|
analyticsLocation,
|
|
analyticsLocations,
|
|
premiumType: memo
|
|
});
|
|
}, [analyticsLocations, markAsDismissed, userDiscountOffer, memo]);
|
|
return userDiscountOffer == null ? null : <BottomSheet key={userDiscountOffer?.id} startExpanded onDismiss={callback}>
|
|
<PremiumDiscountOfferActionSheetContent discountOffer={userDiscountOffer} onConfirm={callback2} />
|
|
</BottomSheet>;
|
|
};
|