55 lines
2.9 KiB
TypeScript
55 lines
2.9 KiB
TypeScript
// Metro module 14788 (f14789).
|
|
import { useEffect, useCallback } from "react";
|
|
import { PremiumTypes } from "../../PremiumConstants";
|
|
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 UserTrialActionCreators_android from "../../UserTrialActionCreators.android";
|
|
import openPremiumModal from "../../../../components_native/premium/openPremiumModal";
|
|
import { formatIntervalDuration } from "../../../../utils/PremiumUtils";
|
|
import { BottomSheet } from "../../../../design/components/Sheet/native/BottomSheet.native";
|
|
import PremiumTrialOfferActionSheetContent from "./PremiumTrialOfferActionSheetContent";
|
|
export default ({ markAsDismissed, userTrialOffer, fallbackPremiumType = PremiumTypes.TIER_2 }) => {
|
|
const analyticsLocations = useAnalyticsLocations(AnalyticsLocation.PREMIUM_TRIAL_OFFER_ACTION_SHEET).analyticsLocations;
|
|
useEffect(() => {
|
|
if (userTrialOffer != null) {
|
|
AnalyticsUtils.track(AnalyticEvents.PREMIUM_TRIAL_OFFER_ACTION_SHEET_VIEWED, {
|
|
location: analyticsLocations,
|
|
trial_id: userTrialOffer.trial_id
|
|
});
|
|
UserTrialActionCreators_android.acknowledgeUserTrialOffer(userTrialOffer);
|
|
}
|
|
}, []);
|
|
useEffect(() => {
|
|
if (userTrialOffer == null) {
|
|
markAsDismissed(ContentDismissActionType.AUTO_DISMISS);
|
|
}
|
|
}, [userTrialOffer, markAsDismissed]);
|
|
const callback = useCallback(() => {
|
|
AnalyticsUtils.track(AnalyticEvents.PREMIUM_TRIAL_OFFER_ACTION_SHEET_DISMISSED, {
|
|
location: analyticsLocations,
|
|
trial_id: userTrialOffer?.trial_id
|
|
});
|
|
markAsDismissed(ContentDismissActionType.USER_DISMISS);
|
|
}, [analyticsLocations, markAsDismissed, userTrialOffer]);
|
|
const callback2 = useCallback(() => {
|
|
AnalyticsUtils.track(AnalyticEvents.PREMIUM_TRIAL_OFFER_ACTION_SHEET_CTA_CLICKED, {
|
|
location: analyticsLocations,
|
|
trial_id: userTrialOffer?.trial_id
|
|
});
|
|
markAsDismissed(ContentDismissActionType.TAKE_ACTION);
|
|
openPremiumModal({
|
|
analyticsLocations
|
|
});
|
|
}, [analyticsLocations, markAsDismissed, userTrialOffer]);
|
|
const intervalDuration = formatIntervalDuration({
|
|
intervalType: userTrialOffer == null ? void 0 : userTrialOffer.subscription_trial?.interval,
|
|
intervalCount: userTrialOffer == null ? void 0 : userTrialOffer.subscription_trial?.interval_count
|
|
});
|
|
return userTrialOffer == null ? null : <BottomSheet key={userTrialOffer.id} startExpanded onDismiss={callback}>
|
|
<PremiumTrialOfferActionSheetContent intervalDuration={intervalDuration} trialOffer={userTrialOffer} onConfirm={callback2} fallbackPremiumType={fallbackPremiumType} />
|
|
</BottomSheet>;
|
|
};
|