157 lines
5.7 KiB
TypeScript
157 lines
5.7 KiB
TypeScript
// Metro module 6536 (f6537).
|
|
import { useMemo } from "react";
|
|
import { View } from "react-native";
|
|
import { PremiumTypes } from "../PremiumConstants";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import FastImage from "../../../components_native/common/FastImage";
|
|
import { Text } from "../../../design/components/Text/native/Text";
|
|
import { getPremiumTypeFromSubscription, getPremiumTypeDisplayName } from "../../../utils/PremiumUtils";
|
|
import useAnalyticsLocations from "../../app_analytics/useAnalyticsLocations";
|
|
import { useWhatYouLoseProfileTier1Source } from "../../../design/components/Illustration/native/redesign/generated/WhatYouLoseProfileTier1";
|
|
import Module38 from "../../../_bundle/Module38";
|
|
import Module6542 from "../../../_bundle/Module6542";
|
|
import { intl, t } from "../../../intl/index.native";
|
|
import Module6543 from "../../../_bundle/Module6543";
|
|
import Module6205 from "../../../_bundle/Module6205";
|
|
import Module6544 from "../../../_bundle/Module6544";
|
|
import Module6545 from "../../../_bundle/Module6545";
|
|
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
|
|
import { BottomSheet } from "../../../design/components/Sheet/native/BottomSheet.native";
|
|
import PremiumPlanActionSheetHeader from "./PremiumPlanActionSheetHeader";
|
|
import { Button } from "../../../design/components/Button/native/Button.native";
|
|
import { STEP_ANALYTICS_NAMES, CancellationFlowSteps, trackPremiumSubscriptionCancellationFlowStep } from "./PremiumAnalyticsUtils";
|
|
let useStyles, c4205_10;
|
|
const WhatYouLoseItem = function WhatYouLoseItem(props) {
|
|
const { imageSource, text } = props;
|
|
const styles = useStyles();
|
|
return <View style={styles.item}>
|
|
<FastImage source={imageSource} />
|
|
<Text variant="text-md/medium" style={styles.itemLabel}>{text}</Text>
|
|
</View>;
|
|
};
|
|
useStyles = createStyles({
|
|
body: {
|
|
paddingTop: 24,
|
|
paddingHorizontal: 24
|
|
},
|
|
title: {
|
|
marginBottom: 8,
|
|
color: Module712.colors.MOBILE_TEXT_HEADING_PRIMARY
|
|
},
|
|
subtitle: {
|
|
marginBottom: 16,
|
|
color: Module712.colors.MOBILE_TEXT_HEADING_PRIMARY
|
|
},
|
|
item: {
|
|
marginBottom: 16,
|
|
borderRadius: Module712.radii.sm,
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
justifyContent: "center",
|
|
alignItems: "center",
|
|
backgroundColor: Module712.colors.BACKGROUND_BASE_LOWEST,
|
|
padding: 16
|
|
},
|
|
itemLabel: {
|
|
marginTop: 8
|
|
},
|
|
footer: {
|
|
paddingHorizontal: 16
|
|
},
|
|
button: {
|
|
marginBottom: 8
|
|
},
|
|
keepText: {
|
|
textAlign: "center",
|
|
paddingVertical: 8,
|
|
color: Module712.colors.TEXT_SUBTLE
|
|
}
|
|
});
|
|
c4205_10 = {
|
|
DOWNGRADE: 0,
|
|
0: "DOWNGRADE",
|
|
CANCEL: 1,
|
|
1: "CANCEL"
|
|
};
|
|
export default function PremiumPlanWhatYouLoseActionSheet(props) {
|
|
const { mode, onContinue, subscription } = props;
|
|
const styles = useStyles();
|
|
const premiumTypeFromSubscription = getPremiumTypeFromSubscription(subscription);
|
|
const analyticsLocations = useAnalyticsLocations().analyticsLocations;
|
|
const whatYouLoseProfileTier1Source = useWhatYouLoseProfileTier1Source();
|
|
Module38(premiumTypeFromSubscription != null, "Expected premium type");
|
|
const memo = useMemo(() => {
|
|
if (PremiumTypes.TIER_0 === premiumTypeFromSubscription) {
|
|
return [{
|
|
imageSource: Module6542,
|
|
text: intl.format(t["0hUHi6"], {})
|
|
}, {
|
|
imageSource: Module6543,
|
|
text: intl.format(t.wFWO6D, {})
|
|
}];
|
|
}
|
|
if (PremiumTypes.TIER_1 === premiumTypeFromSubscription) {
|
|
return [{
|
|
imageSource: whatYouLoseProfileTier1Source,
|
|
text: intl.format(t.xCaYwE, {})
|
|
}, {
|
|
imageSource: Module6205,
|
|
text: intl.format(t.wK04T1, {})
|
|
}, {
|
|
imageSource: Module6544,
|
|
text: intl.format(t.K4Hv69, {})
|
|
}];
|
|
}
|
|
if (PremiumTypes.TIER_2 === premiumTypeFromSubscription) {
|
|
return [{
|
|
imageSource: Module6545,
|
|
text: intl.format(t["gpqr+n"], {})
|
|
}, {
|
|
imageSource: Module6544,
|
|
text: intl.format(t.wRxEDW, {})
|
|
}, {
|
|
imageSource: Module6205,
|
|
text: intl.format(t["4WZ7T2"], {})
|
|
}];
|
|
}
|
|
return [];
|
|
}, [premiumTypeFromSubscription, whatYouLoseProfileTier1Source]);
|
|
return <BottomSheet>
|
|
<PremiumPlanActionSheetHeader premiumType={premiumTypeFromSubscription} />
|
|
<View style={styles.body}>
|
|
<Text variant="heading-xl/extrabold" style={styles.title}>
|
|
{mode === c4205_10.CANCEL ? intl.string(t.PWq8TL) : intl.string(t["7VcWW0"])}
|
|
</Text>
|
|
<Text variant="text-md/medium" style={styles.subtitle}>
|
|
{mode === c4205_10.CANCEL ? intl.format(t.jh5mUz, {
|
|
subscriptionName: getPremiumTypeDisplayName(premiumTypeFromSubscription, true)
|
|
}) : intl.format(t.Qk34Ik, {
|
|
subscriptionName: getPremiumTypeDisplayName(premiumTypeFromSubscription, true)
|
|
})}
|
|
</Text>
|
|
{memo.map((item, index) => <WhatYouLoseItem key={index} {...item} />)}
|
|
</View>
|
|
<View style={styles.footer}>
|
|
<View style={styles.button}>
|
|
<Button text={intl.string(t["3PatSz"])} grow onPress={() => {
|
|
onContinue(STEP_ANALYTICS_NAMES[CancellationFlowSteps.WHAT_YOU_LOSE]);
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
}} />
|
|
</View>
|
|
<Text variant="text-sm/medium" style={styles.keepText} onPress={function onPress() {
|
|
trackPremiumSubscriptionCancellationFlowStep({
|
|
subscription,
|
|
analyticsLocations,
|
|
fromStep: STEP_ANALYTICS_NAMES[CancellationFlowSteps.WHAT_YOU_LOSE],
|
|
toStep: null
|
|
});
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
}}>
|
|
{intl.string(t.rzVN6j)}
|
|
</Text>
|
|
</View>
|
|
</BottomSheet>;
|
|
};
|
|
export { c4205_10 as WhatYouLoseMode };
|