Files
discord-decomp/modules/premium/native/PremiumPlanWhatYouLoseActionSheet.tsx
T
2026-11-01 12:12:55 +02:00

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 };