124 lines
5.7 KiB
TypeScript
124 lines
5.7 KiB
TypeScript
// Metro module 14190 (f14191).
|
|
import { useCallback, useMemo } from "react";
|
|
import { View } from "react-native";
|
|
import { AnalyticsPages, HelpdeskArticles, UserSettingsSections } from "../../../Constants";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
|
|
import { openUserSettings } from "../../user_settings/core/native/openUserSettings";
|
|
import usePremiumFeatureUpsellGetNitro from "../../premium/roadblocks/native/hooks/usePremiumFeatureUpsellGetNitro";
|
|
import Linking from "../../../lib/native/Linking";
|
|
import HelpdeskUtils from "../../../utils/HelpdeskUtils";
|
|
import { Button } from "../../../design/components/Button/native/Button.native";
|
|
import { intl, t } from "../../../intl/index.native";
|
|
import useSafeAreaInsets_native from "../../safe_area/useSafeAreaInsets.native";
|
|
import { ActionSheetHeaderBar } from "../../../design/components/Sheet/native/ActionSheetHeaderBar.native";
|
|
import { NitroQuestOrbsMultiplierRive } from "../../../_bundle/Module3901";
|
|
import { Text } from "../../../design/components/Text/native/Text";
|
|
import * as _QuestOrbMultiplierUtils from "../utils/QuestOrbMultiplierUtils";
|
|
import { QuestOrbMultiplierEligibilityType } from "../utils/QuestOrbMultiplierUtils";
|
|
import Crepe_messages from "../../croissant/crepe/Crepe.messages";
|
|
import { BottomSheet } from "../../../design/components/Sheet/native/BottomSheet.native";
|
|
import PremiumRewardGradient from "./PremiumRewardGradient";
|
|
let contentStyles, useStyles, SheetContent;
|
|
const Footer = function Footer(props) {
|
|
let props2;
|
|
const eligibleToReceivePremiumRewards = props.eligibleToReceivePremiumRewards;
|
|
const styles = useStyles();
|
|
const callback2 = useCallback(() => {
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
openUserSettings({
|
|
screen: UserSettingsSections.PREMIUM
|
|
});
|
|
}, []);
|
|
const premiumFeatureUpsellGetNitro = usePremiumFeatureUpsellGetNitro(false, callback2, AnalyticsPages.QUEST_ORB_MULTIPLIER_PERK_INFO);
|
|
const { loading, onPress } = premiumFeatureUpsellGetNitro;
|
|
const callback = useCallback(() => {
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
Linking.openURL(HelpdeskUtils.getArticleURL(HelpdeskArticles.VIRTUAL_CURRENCY_ORB_MULTIPLIER_LEARN_MORE));
|
|
}, []);
|
|
const callback3 = useCallback(() => {
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
}, []);
|
|
const r36 = {
|
|
style: styles.buttonContainer,
|
|
children: null
|
|
};
|
|
if (eligibleToReceivePremiumRewards) {
|
|
r36.children = [<Button size="lg" text={intl.string(t.hvVgAZ)} variant="primary" onPress={callback} />, <Button size="lg" variant="secondary" text={intl.string(t.cpT0Cq)} onPress={callback3} />];
|
|
props2 = r36;
|
|
} else {
|
|
r36.children = [<Button size="lg" variant="primary" text={intl.string(t.pj0XBN)} onPress={onPress} loading={loading} />, <Button size="lg" variant="secondary" text={intl.string(t.PcTCB7)} onPress={callback2} />];
|
|
props2 = r36;
|
|
}
|
|
return <View {...props2} />;
|
|
};
|
|
SheetContent = function SheetContent(props) {
|
|
const { title, body, eligibleToReceivePremiumRewards } = props;
|
|
const styles = useStyles();
|
|
return <>
|
|
<ActionSheetHeaderBar variant="floating" />
|
|
<View style={[styles.container, {
|
|
marginBottom: useSafeAreaInsets_native().bottom
|
|
}]}>
|
|
<View style={styles.contentContainer}>
|
|
<View style={styles.riveContainer}>
|
|
<NitroQuestOrbsMultiplierRive />
|
|
</View>
|
|
<Text style={[styles.text, styles.title]} variant="display-md" color="mobile-text-heading-primary" accessibilityRole="header">{title}</Text>
|
|
<Text style={styles.text} variant="text-sm/normal">{body}</Text>
|
|
<Footer eligibleToReceivePremiumRewards={eligibleToReceivePremiumRewards} />
|
|
</View>
|
|
</View>
|
|
</>;
|
|
};
|
|
contentStyles = {
|
|
marginBottom: 0
|
|
};
|
|
useStyles = createStyles({
|
|
container: {
|
|
alignItems: "center",
|
|
paddingHorizontal: Module712.space.PX_16
|
|
},
|
|
contentContainer: {
|
|
alignItems: "center",
|
|
width: "100%",
|
|
marginTop: Module712.space.PX_48
|
|
},
|
|
text: {
|
|
textAlign: "center",
|
|
paddingHorizontal: Module712.space.PX_24,
|
|
paddingBottom: Module712.space.PX_16
|
|
},
|
|
buttonContainer: {
|
|
width: "100%",
|
|
gap: Module712.space.PX_12,
|
|
marginVertical: Module712.space.PX_16
|
|
},
|
|
title: {
|
|
textTransform: "uppercase",
|
|
textAlign: "center",
|
|
lineHeight: 34,
|
|
paddingHorizontal: 0
|
|
},
|
|
riveContainer: {
|
|
width: "100%",
|
|
height: 160
|
|
}
|
|
});
|
|
export default function QuestOrbMultiplierPerkInfoActionSheet(props) {
|
|
const { multiplier, orbMultiplierEligibility } = props;
|
|
const shouldReceiveQuestOrbMultiplier = _QuestOrbMultiplierUtils.shouldReceiveQuestOrbMultiplier(orbMultiplierEligibility);
|
|
return <BottomSheet scrollable={false} handleDisabled startExpanded contentStyles={contentStyles}>
|
|
<PremiumRewardGradient visible={orbMultiplierEligibility === QuestOrbMultiplierEligibilityType.NITRO || orbMultiplierEligibility === QuestOrbMultiplierEligibilityType.UPSELL}>
|
|
<SheetContent title={useMemo(() => orbMultiplierEligibility === QuestOrbMultiplierEligibilityType.CREPE ? intl.string(Crepe_messages.c5usUr) : intl.string(t.Csf5Ol), [orbMultiplierEligibility])} body={useMemo(() => orbMultiplierEligibility === QuestOrbMultiplierEligibilityType.CREPE ? intl.format(Crepe_messages.UkrcSH, {
|
|
bonusOrbMultiplier: multiplier
|
|
}) : shouldReceiveQuestOrbMultiplier ? intl.format(t.NpUfej, {
|
|
bonusOrbMultiplier: multiplier
|
|
}) : intl.format(t["G5k+lZ"], {
|
|
bonusOrbMultiplier: multiplier
|
|
}), [shouldReceiveQuestOrbMultiplier, orbMultiplierEligibility, multiplier])} eligibleToReceivePremiumRewards={shouldReceiveQuestOrbMultiplier} />
|
|
</PremiumRewardGradient>
|
|
</BottomSheet>;
|
|
};
|