Files
discord-decomp/sources/modules/premium/native/gifting/GiftBadgePostPurchase.tsx
T
2026-07-28 01:06:53 +03:00

302 lines
18 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] */
import Native from '../../../../external/discord_common/js/packages/tokens/native.tsx'; /* Metro dependency 697 */
import UseSafeAreaInsetsNative from '../../../safe_area/useSafeAreaInsets.native.tsx'; /* Metro dependency 1585 */
import ModalActionCreators from '../../../../actions/ModalActionCreators.tsx'; /* Metro dependency 5080 */
import BadgeDirectoryStore from '../../../badges/BadgeDirectoryStore.tsx'; /* Metro dependency 7670 */
import GiftingBadgeProgress from '../../gifting/native/views/GiftingBadgeProgress.tsx'; /* Metro dependency 10470 */
import GiftingBadgeLevelUpProgress from '../../gifting/native/views/GiftingBadgeLevelUpProgress.tsx'; /* Metro dependency 10471 */
import * as FileImportTrackerModule from '../../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ReactNativeModule from '../../../../by-id/module-00027-ReactNative.js'; /* Metro dependency 27 */
import * as ReactModule from '../../../../by-id/module-00031-React.js'; /* Metro dependency 31 */
import * as FluxModule from '../../../../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */
import * as IndexNativeModule from '../../../../intl/index.native.tsx'; /* Metro dependency 1244 */
import * as DismissibleContentConstantsModule from '../../../dismissible_content/DismissibleContentConstants.tsx'; /* Metro dependency 1376 */
import * as CreateStylesModule from '../../../../design/components/Styles/native/createStyles.tsx'; /* Metro dependency 4501 */
import * as TextModule from '../../../../design/components/Text/native/Text.tsx'; /* Metro dependency 4573 */
import * as ButtonNativeModule from '../../../../design/components/Button/native/Button.native.tsx'; /* Metro dependency 4578 */
import * as BadgeIdModule from '../../../../external/discord_common/js/shared/shared-constants/BadgeId.tsx'; /* Metro dependency 7635 */
import * as GiftIconModule from '../../../../design/components/Icon/native/redesign/generated/GiftIcon.tsx'; /* Metro dependency 10112 */
import * as GiftingBadgeConstantsModule from '../../gifting/GiftingBadgeConstants.tsx'; /* Metro dependency 10469 */
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});
let value = GiftingBadgeConstantsModule;
const env0_6 = value.getRemainingGiftsToNextTier;
const env0_7 = value.getTierForProgress;
const env0_8 = value.getNextTierForProgress;
value = require(33) /* metro dependency 33 */;
const env0_10 = value.jsx;
const env0_11 = value.jsxs;
const env0_12 = (CreateStylesModule).createStyles(_fun81010);
(FileImportTrackerModule).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((UseSafeAreaInsetsNative)().bottom);
const value2 = ReactModule.useCallback(_fun81005, [onSendGift]);
const value3 = ReactModule.useCallback(_fun81006, []);
const Button = (ButtonNativeModule).Button;
const object2 = {'grow': true, 'variant': 'primary'};
const GiftIcon = (GiftIconModule).GiftIcon;
const CONTROL_PRIMARY_TEXT_DEFAULT = (Native).colors.CONTROL_PRIMARY_TEXT_DEFAULT;
object2.icon = <GiftIcon size="sm" color={CONTROL_PRIMARY_TEXT_DEFAULT} />;
const intl = (IndexNativeModule).intl;
object2.text = intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */).g86YiI);
object2.onPress = value2;
return (
<View style={styles.footer}>
<Button {...object2} />
<Button
grow
variant="secondary"
text={(IndexNativeModule).intl.string((importDefault(2320) /* metro dependency 2320: GiftingBadgeMessages */)['sa/cfM'])}
onPress={value3}
/>
</View>
);
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__;
(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__;
(ModalActionCreators).pop();
value = require(4008) /* metro dependency 4008: RootNavigationRefNative */;
value = value.getRootNavigationRef();
if (value != null) {
value.navigate('you');
}
}
}
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((UseSafeAreaInsetsNative)().bottom);
const view = (
<View style={styles.progressWrapper}>
{((Component) => <Component progress={progress} currentTier={currentTier} nextTier={nextTier} iconSize={48} title={progressBarTitle} />)(GiftingBadgeProgress)}
</View>
);
const Text = (TextModule).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((UseSafeAreaInsetsNative)().bottom);
ReactModule.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} />)(GiftingBadgeLevelUpProgress);
const Text = (TextModule).Text;
const intl = (IndexNativeModule).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 object = {};
object.screenContainer = {flex: 1};
let PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object.content = {'flex': 1, 'alignItems': 'center', 'justifyContent': 'center', padding: PX_16};
const object4 = {};
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object4.padding = PX_16;
object4.width = '100%';
const PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object4.marginBottom = PX_24;
object.progressWrapper = object4;
const object5 = {'gap': null, 'alignItems': 'center', 'width': '100%'};
let PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object5.gap = PX_12;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object5.paddingHorizontal = PX_16;
object.messageSection = object5;
object.centerText = {textAlign: 'center'};
const PX_48 = (importDefault(697) /* metro dependency 697: native */).space.PX_48;
object.levelUpIconWrapper = {'paddingVertical': 26, 'paddingHorizontal': 74, marginBottom: PX_48};
PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object.levelUpBody = {'gap': null, 'alignItems': 'center', 'width': '100%', gap: PX_12};
object.levelUpProgress = {maxWidth: 260};
const object8 = {width: '100%'};
PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object8.gap = PX_12;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object8.paddingHorizontal = PX_16;
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object8.paddingBottom = PX_16 + a0;
object.footer = object8;
return object;
}
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 = (IndexNativeModule).intl;
ReactModule.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 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 _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 badgeDirectoryStoreBinding = BadgeDirectoryStore;
const getBadgeById = badgeDirectoryStoreBinding.getBadgeById;
value = undefined;
const BadgeId = (BadgeIdModule).BadgeId;
const GIFTING = BadgeId.GIFTING;
const value2 = Reflect.apply(getBadgeById, badgeDirectoryStoreBinding, [GIFTING]);
return value2 == null ? value : value2.tiers;
}
}
}
global.__d(_fun81003, 10468, [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]) /* metro module 10468, 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] */;