86 lines
3.3 KiB
TypeScript
86 lines
3.3 KiB
TypeScript
// Metro module 15758 (f15759).
|
|
import { useCallback } from "react";
|
|
import { View } from "react-native";
|
|
import { PremiumTypes } from "../../PremiumConstants";
|
|
import { AnalyticsObjectTypes, AnalyticsObjects, AnalyticsPages, AnalyticsSections, HelpdeskArticles } from "../../../../Constants";
|
|
import { ContentDismissActionType } from "../../../dismissible_content/DismissibleContentConstants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../../_bundle/Module712";
|
|
import useAnalyticsLocations from "../../../app_analytics/useAnalyticsLocations";
|
|
import openPremiumPlanSelectionActionSheet from "../../native/openPremiumPlanSelectionActionSheet";
|
|
import { BottomSheet } from "../../../../design/components/Sheet/native/BottomSheet.native";
|
|
import FastImage from "../../../../components_native/common/FastImage";
|
|
import { Text } from "../../../../design/components/Text/native/Text";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
import HelpdeskUtils from "../../../../utils/HelpdeskUtils";
|
|
import NitroUpsellButton from "../../components/native/NitroUpsellButton";
|
|
const useStyles = createStyles({
|
|
container: {
|
|
dipslay: "flex",
|
|
flexDirection: "column",
|
|
justifyContent: "center",
|
|
alignItems: "center",
|
|
padding: Module712.space.PX_16,
|
|
borderRadius: Module712.radii.lg,
|
|
marginBottom: Module712.space.PX_24
|
|
},
|
|
buttonContainer: {
|
|
marginTop: Module712.space.PX_24,
|
|
width: 335,
|
|
height: 48
|
|
},
|
|
header: {
|
|
marginBottom: 12,
|
|
textAlign: "center"
|
|
},
|
|
subheader: {
|
|
textAlign: "center"
|
|
},
|
|
image: {
|
|
alignSelf: "center",
|
|
paddingBottom: Module712.space.PX_16,
|
|
height: 213,
|
|
width: 335,
|
|
borderRadius: Module712.radii.lg,
|
|
marginBottom: 12
|
|
}
|
|
});
|
|
export default function BogoPromotionActionSheet(props) {
|
|
const markAsDismissed = props.markAsDismissed;
|
|
const styles = useStyles();
|
|
const analyticsLocations = useAnalyticsLocations().analyticsLocations;
|
|
const callback = useCallback(() => {
|
|
markAsDismissed(ContentDismissActionType.PRIMARY);
|
|
openPremiumPlanSelectionActionSheet({
|
|
analyticsLocation: {
|
|
page: AnalyticsPages.BOGO_PROMOTION_ACTION_SHEET,
|
|
section: AnalyticsSections.FOOTER,
|
|
object: AnalyticsObjects.BUTTON_CTA,
|
|
objectType: AnalyticsObjectTypes.BUY
|
|
},
|
|
analyticsLocations,
|
|
premiumType: PremiumTypes.TIER_2
|
|
});
|
|
}, [analyticsLocations, markAsDismissed]);
|
|
return <BottomSheet onDismiss={useCallback(() => {
|
|
markAsDismissed(ContentDismissActionType.USER_DISMISS);
|
|
}, [markAsDismissed])}>
|
|
<View style={[styles.container]}>
|
|
<FastImage source={{
|
|
uri: "https://cdn.discordapp.com/assets/content/a59aed2e0e61a955dc3e0f4f6f7ab295e39f89a93c4f01e4bd84ed7fb418ec63.png"
|
|
}} style={styles.image} />
|
|
<Text style={[styles.header]} color="mobile-text-heading-primary" variant="heading-xl/bold">
|
|
{intl.string(t["6Jjfk8"])}
|
|
</Text>
|
|
<Text style={[styles.subheader]} color="text-subtle" variant="text-md/medium">
|
|
{intl.format(t.y7lJK6, {
|
|
helpCenterLink: HelpdeskUtils.getArticleURL(HelpdeskArticles.SUMMER_BOGO_2025)
|
|
})}
|
|
</Text>
|
|
<View style={[styles.buttonContainer]}>
|
|
<NitroUpsellButton text={intl.string(t.J61px0)} onPress={callback} />
|
|
</View>
|
|
</View>
|
|
</BottomSheet>;
|
|
};
|