Files
discord-decomp/sources/modules/premium/native/gifting/GiftBadgePostPurchase.tsx
T
2026-07-27 16:20:00 +03:00

267 lines
16 KiB
TypeScript

/* Metro module 10468; source: modules/premium/native/gifting/GiftBadgePostPurchase.tsx; dependencies: [31, 27, 7670, 10469, 1376, 33, 4501, 697, 1585, 5080, 4008, 4578, 10112, 1244, 2320, 10470, 4573, 4081, 4082, 10388, 10471, 3968, 1365, 566, 7635, 2] */
function _fun81003(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#81003, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10654:6, offset: 0x01e9497e, size: 318 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).View;
const badgeDirectoryStore = importDefault(7670) /* metro dependency 7670: BadgeDirectoryStore */;
let value = require(10469) /* metro dependency 10469: GiftingBadgeConstants */;
const env0_6 = value.getRemainingGiftsToNextTier;
const env0_7 = value.getTierForProgress;
const env0_8 = value.getNextTierForProgress;
const env0_9 = (require(1376) /* metro dependency 1376: DismissibleContentConstants */).ContentDismissActionType;
value = require(33) /* metro dependency 33 */;
const env0_10 = value.jsx;
const env0_11 = value.jsxs;
const env0_12 = (require(4501) /* metro dependency 4501: createStyles */).createStyles(_fun81010);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/premium/native/gifting/GiftBadgePostPurchase.tsx');
exports.default = GiftBadgePostPurchase;
}
function PostPurchaseFooter({onSendGift}) { // fn#81004, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10654:984, offset: 0x01e94abc, size: 414 bytes, params: 2, frame: 28
const styles = useStyles((importDefault(1585) /* metro dependency 1585: useSafeAreaInsetsNative */)().bottom);
const value2 = env0_3.useCallback(_fun81005, [onSendGift]);
const value3 = env0_3.useCallback(_fun81006, []);
const Button = (require(4578) /* metro dependency 4578: ButtonNative */).Button;
const object = {'grow': true, 'variant': 'primary'};
const GiftIcon = (require(10112) /* metro dependency 10112: GiftIcon */).GiftIcon;
const CONTROL_PRIMARY_TEXT_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.CONTROL_PRIMARY_TEXT_DEFAULT;
object.icon = <GiftIcon size="sm" color={CONTROL_PRIMARY_TEXT_DEFAULT} />;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object.text = intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).g86YiI);
object.onPress = value2;
return (
<View style={styles.footer}>
<Button {...object} />
<Button
grow
variant="secondary"
text={(require(1244) /* metro dependency 1244: indexNative */).intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */)['sa/cfM'])}
onPress={value3}
/>
</View>
);
}
function InProgressScreen({progress, title, progressBarTitle, description, currentTier, nextTier, onSendGift}) { // fn#81007, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10654:1547, offset: 0x01e94cde, size: 424 bytes, params: 2, frame: 32
const styles = useStyles((importDefault(1585) /* metro dependency 1585: useSafeAreaInsetsNative */)().bottom);
const view = <View style={styles.progressWrapper}>{((Component) => <Component progress={progress} currentTier={currentTier} nextTier={nextTier} iconSize={48} title={progressBarTitle} />)(importDefault(10470) /* metro dependency 10470: GiftingBadgeProgress */)}</View>;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
return (
<View style={styles.screenContainer}>
<View style={styles.content}>
{view}
<View style={styles.messageSection}>
<Text variant="heading-xxl/bold" style={styles.centerText}>
{title}
</Text>
<Text
variant="text-md/medium"
color="text-subtle"
style={styles.centerText}
>
{description}
</Text>
</View>
</View>
<PostPurchaseFooter onSendGift={onSendGift} />
</View>
);
}
function LevelUpScreen({simulatedProgress, currentTier, newTier, nextTier, giftsToNextTier, onSendGift}) { // fn#81008, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10654:2151, offset: 0x01e94e86, size: 743 bytes, params: 2, frame: 44
const styles = useStyles((importDefault(1585) /* metro dependency 1585: useSafeAreaInsetsNative */)().bottom);
env0_3.useEffect(function() {
require(dependencyMap[17]).triggerHapticFeedback(importDefault(dependencyMap[18]).IMPACT_HEAVY);
}, []);
const view = <View style={styles.levelUpIconWrapper}>{newTier.simple_icon_url != null && ((Component) => <Component icon={newTier.simple_icon_url} size={140} />)(importDefault(10388) /* metro dependency 10388: GiftingBadgeIcon */)}</View>;
const value5 = ((Component) => <Component progress={simulatedProgress} currentTier={currentTier} newTier={newTier} style={styles.levelUpProgress} />)(importDefault(10471) /* metro dependency 10471: GiftingBadgeLevelUpProgress */);
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const format = intl.format;
const k8MmO8 = (importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).k8MmO8;
const name = newTier.name;
const value6 = '';
return (
<View style={styles.screenContainer}>
<View style={styles.content}>
{view}
<View style={styles.levelUpBody}>
{value5}
<View style={styles.messageSection}>
<Text variant="heading-xxl/bold" style={styles.centerText}>
{Reflect.apply(format, intl, [k8MmO8, {tierName: name ?? value6}])}
</Text>
{nextTier != null && giftsToNextTier != null && giftsToNextTier > 0 && <Text variant="text-md/normal" color="text-subtle" style={styles.centerText}>{intl.format((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */)['6QVlxw'],
{count: giftsToNextTier, nextTierName: nextTier.name ?? value6})}</Text>}
</View>
</View>
</View>
<PostPurchaseFooter onSendGift={onSendGift} />
</View>
);
}
function _fun81010(a0) { // fn#81010, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10654:309, offset: 0x01e951a9, size: 417 bytes, params: 2, frame: 17
const object2 = {};
object2.screenContainer = {flex: 1};
let PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object2.content = {'flex': 1, 'alignItems': 'center', 'justifyContent': 'center', padding: PX_16};
const object3 = {};
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object3.padding = PX_16;
object3.width = '100%';
const PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object3.marginBottom = PX_24;
object2.progressWrapper = object3;
const object6 = {'gap': null, 'alignItems': 'center', 'width': '100%'};
let PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object6.gap = PX_12;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object6.paddingHorizontal = PX_16;
object2.messageSection = object6;
object2.centerText = {textAlign: 'center'};
const PX_48 = (importDefault(697) /* metro dependency 697: native */).space.PX_48;
object2.levelUpIconWrapper = {'paddingVertical': 26, 'paddingHorizontal': 74, marginBottom: PX_48};
PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object2.levelUpBody = {'gap': null, 'alignItems': 'center', 'width': '100%', gap: PX_12};
object2.levelUpProgress = {maxWidth: 260};
const object7 = {width: '100%'};
PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object7.gap = PX_12;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object7.paddingHorizontal = PX_16;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object7.paddingBottom = PX_16 + a0;
object2.footer = object7;
return object2;
}
function GiftBadgePostPurchase({currentProgress, onSendGift}) { // fn#81011, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10654:3208, offset: 0x01e9534a, size: 777 bytes, params: 2, frame: 31
var r12;
var r13;
var r1;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
env0_3.useEffect(function() {
var moduleValue = require(dependencyMap[21]);
var NEW_GIFTING_BADGES_COACHMARK = require(dependencyMap[22]).DismissibleContent.NEW_GIFTING_BADGES_COACHMARK;
moduleValue.UNSAFE_markDismissibleContentAsDismissed(NEW_GIFTING_BADGES_COACHMARK,
{dismissAction: ContentDismissActionType.INDIRECT_ACTION});
}, []);
const fluxModule = require(566) /* metro dependency 566: flux */;
const useStateFromStores = fluxModule.useStateFromStores;
let object = [BadgeDirectoryStore];
const value3 = Reflect.apply(useStateFromStores, fluxModule, [object, _fun81013]);
if (value3 == null) {
return null;
}
const getTierForProgressBinding = getTierForProgress;
const tierForProgressBinding = getTierForProgressBinding(value3, currentProgress);
const value5 = currentProgress + 1;
const tierForProgressBinding2 = getTierForProgressBinding(value3, value5);
const key = tierForProgressBinding2?.key;
const key2 = tierForProgressBinding?.key;
const nextTierForProgress = getNextTierForProgress(value3, value5);
const remainingGiftsToNextTier = getRemainingGiftsToNextTier(value3, value5);
if (key === key2) {
if (remainingGiftsToNextTier === 1) {
object = {};
object.title = intl.formatToPlainString((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).KjdBPz,
{nextTier: nextTierForProgress?.name ?? ''});
object.description = intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).oqDrEM);
object.progressBarTitle = intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */)['Ka5s+Q']);
object.progress = value5;
r13 = tierForProgressBinding2 ?? undefined;
object.currentTier = r13;
r13 = nextTierForProgress ?? undefined;
object.nextTier = r13;
object.onSendGift = onSendGift;
r1 = object;
} else {
object = {};
object.title = intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */)['/rBQud']);
object.description = intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).DDQMlx);
r12 = tierForProgressBinding?.name != null ? intl.formatToPlainString((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).bwyQt8,
{tierName: tierForProgressBinding?.name}) : '';
object.progressBarTitle = r12;
object.progress = value5;
r12 = tierForProgressBinding2 ?? undefined;
object.currentTier = r12;
r12 = nextTierForProgress ?? undefined;
object.nextTier = r12;
object.onSendGift = onSendGift;
r1 = object;
}
r1 = <InProgressScreen {...r1} />;
} else if (tierForProgressBinding2 != null) {
r1 = <LevelUpScreen simulatedProgress={value5} currentTier={tierForProgressBinding} newTier={tierForProgressBinding2} nextTier={nextTierForProgress} giftsToNextTier={remainingGiftsToNextTier} onSendGift={onSendGift} />;
} else {
if (remainingGiftsToNextTier === 1) {
object = {};
object.title = intl.formatToPlainString((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).KjdBPz,
{nextTier: nextTierForProgress?.name ?? ''});
object.description = intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).oqDrEM);
object.progressBarTitle = intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */)['Ka5s+Q']);
object.progress = value5;
r13 = tierForProgressBinding2 ?? undefined;
object.currentTier = r13;
r13 = nextTierForProgress ?? undefined;
object.nextTier = r13;
object.onSendGift = onSendGift;
r1 = object;
} else {
object = {};
object.title = intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */)['/rBQud']);
object.description = intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).DDQMlx);
r12 = tierForProgressBinding?.name != null ? intl.formatToPlainString((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).bwyQt8,
{tierName: tierForProgressBinding?.name}) : '';
object.progressBarTitle = r12;
object.progress = value5;
r12 = tierForProgressBinding2 ?? undefined;
object.currentTier = r12;
r12 = nextTierForProgress ?? undefined;
object.nextTier = r12;
object.onSendGift = onSendGift;
r1 = object;
}
r1 = <InProgressScreen {...r1} />;
}
return r1;
}
function _fun81005() { // fn#81005, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10654:1075, offset: 0x01e94c5a, size: 48 bytes, params: 1, frame: 11
const value = environment.__proto__;
(importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop();
onSendGift();
}
function _fun81006() { // fn#81006, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10654:1122, offset: 0x01e94c8a, size: 84 bytes, params: 1, frame: 13
let value = environment.__proto__;
(importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop();
value = require(4008) /* metro dependency 4008: RootNavigationRefNative */;
value = value.getRootNavigationRef();
if (value != null) {
value.navigate('you');
}
}
function _fun81013() { // fn#81013, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10654:3478, offset: 0x01e956a3, size: 69 bytes, params: 1, frame: 13
let value = environment.__proto__;
const getBadgeById = BadgeDirectoryStore.getBadgeById;
value = undefined;
const BadgeId = (require(7635) /* metro dependency 7635: BadgeId */).BadgeId;
const GIFTING = BadgeId.GIFTING;
const value2 = Reflect.apply(getBadgeById, BadgeDirectoryStore, [GIFTING]);
return value2 == null ? value : value2.tiers;
}