Files
discord-decomp/sources/modules/quests/experiments/index.tsx
T
2026-07-27 16:20:00 +03:00

202 lines
14 KiB
TypeScript

/* Metro module 9511; source: modules/quests/experiments/index.tsx; dependencies: [57, 31, 6528, 1854, 9502, 9503, 9512, 672, 2] */
function _fun74201(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#74201, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9697:6, offset: 0x01d84540, size: 2175 bytes, params: 8, frame: 47
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importDefault(57) /* metro dependency 57 */;
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(6528) /* metro dependency 6528: QuestConstants */).QuestsExperimentLocations;
let value = require(1854) /* metro dependency 1854: apex */;
let createApexExperiment = value.createApexExperiment;
value = Reflect.apply(createApexExperiment, value, [{'name': '2025-11-video-end-card-v2', 'kind': 'user',
defaultConfig: {enabled: false}, variations: {[1]: {enabled: true}}}]);
const apexExperiment = (require(1854) /* metro dependency 1854: apex */).createApexExperiment({'name': '2026-02-new-video-quest-progress-bar-styling',
'kind': 'user', defaultConfig: {enabled: false}, variations: {[0]: {enabled: false}, [1]: {enabled: true}}});
const apexExperiment2 = (require(1854) /* metro dependency 1854: apex */).createApexExperiment({'name': '2026-03-desktop-activity-quest-header',
'kind': 'user', defaultConfig: {'enabled': false, 'showSkipButton': false}, variations: {[1]: {'enabled': true,
'showSkipButton': true}, [2]: {'enabled': true, 'showSkipButton': false}}});
const apexExperiment3 = (require(1854) /* metro dependency 1854: apex */).createApexExperiment({'name': '2026-05-app-store-overlay-feature-gate',
'kind': 'user', defaultConfig: {enabled: false}, variations: {[1]: {enabled: true}}});
const apexExperiment4 = (require(1854) /* metro dependency 1854: apex */).createApexExperiment({'name': '2026-03-quest-reload-video-on-obscured',
'kind': 'user', defaultConfig: {enabled: false}, variations: {[1]: {enabled: true}}});
object2 = {DEFAULT: 0};
object2[0] = 'DEFAULT';
object2.AUTO_ENABLE_CAPTIONS = 1;
object2[1] = 'AUTO_ENABLE_CAPTIONS';
object2.AUTO_UNMUTE = 2;
object2[2] = 'AUTO_UNMUTE';
const apexModule = require(1854) /* metro dependency 1854: apex */;
createApexExperiment = apexModule.createApexExperiment;
const object3 = {'name': '2026-03-muted-video-quest-new-defaults', 'kind': 'user'};
let DEFAULT = object2.DEFAULT;
object3.defaultConfig = {enabled: false, variant: DEFAULT};
DEFAULT = object2.DEFAULT;
const AUTO_ENABLE_CAPTIONS = object2.AUTO_ENABLE_CAPTIONS;
const AUTO_UNMUTE = object2.AUTO_UNMUTE;
object3.variations = {[0]: {enabled: false, variant: DEFAULT}, [1]: {enabled: true, variant: AUTO_ENABLE_CAPTIONS},
[2]: {enabled: true, variant: AUTO_UNMUTE}};
const apexExperiment5 = Reflect.apply(createApexExperiment, apexModule, [object3]);
const env0_5 = apexModule.createApexExperiment({'name': '2026-04-quests-premium-orb-multiplier-marketing',
'kind': 'user', defaultConfig: {enabled: false}, variations: {[0]: {enabled: false}, [1]: {enabled: true}}});
const apexExperiment6 = apexModule.createApexExperiment({'name': '2026-03-video-quest-player-refactor',
'kind': 'user', defaultConfig: {enabled: false}, variations: {[1]: {enabled: true}}});
const apexExperiment7 = apexModule.createApexExperiment({'name': '2026-04-composed-quest-player', 'kind': 'user',
defaultConfig: {enabled: false}, variations: {[1]: {enabled: true}}});
const object4 = {CONTROL: 0};
object4[0] = 'CONTROL';
object4.EARN_ORBS_PRIMARY = 1;
object4[1] = 'EARN_ORBS_PRIMARY';
object4.EARN_ORBS_ONLY = 2;
object4[2] = 'EARN_ORBS_ONLY';
const value10 = apexModule;
createApexExperiment = value10.createApexExperiment;
const object5 = {'name': '2026-04-mobile-quest-orb-reward-modal-cta-priority', 'kind': 'user'};
let CONTROL = object4.CONTROL;
object5.defaultConfig = {enabled: false, variant: CONTROL};
CONTROL = object4.CONTROL;
const EARN_ORBS_PRIMARY = object4.EARN_ORBS_PRIMARY;
const EARN_ORBS_ONLY = object4.EARN_ORBS_ONLY;
object5.variations = {[0]: {enabled: false, variant: CONTROL}, [1]: {enabled: true, variant: EARN_ORBS_PRIMARY},
[2]: {enabled: true, variant: EARN_ORBS_ONLY}};
const env0_6 = Reflect.apply(createApexExperiment, value10, [object5]);
const apexExperiment8 = apexModule.createApexExperiment({'name': '2026-03-mobile-quest-home-red-dot-notification',
'kind': 'user', defaultConfig: {enabled: false}, variations: {[0]: {enabled: false}, [1]: {enabled: true}}});
const apexExperiment9 = apexModule.createApexExperiment({'name': '2026-04-quest-heartbeat-executable-fingerprint',
'kind': 'user', defaultConfig: {enabled: false}, variations: {[0]: {enabled: false}, [1]: {enabled: true}}});
const object6 = {CONTROL: 0};
object6[0] = 'CONTROL';
object6.NEW_LAYOUT_NO_SEARCH = 1;
object6[1] = 'NEW_LAYOUT_NO_SEARCH';
object6.NEW_LAYOUT_WITH_SEARCH = 2;
object6[2] = 'NEW_LAYOUT_WITH_SEARCH';
const value13 = apexModule;
createApexExperiment = value13.createApexExperiment;
const object7 = {'name': '2026-05-quest-home-new-layout', 'kind': 'user'};
CONTROL = object6.CONTROL;
object7.defaultConfig = {enabled: false, variant: CONTROL};
CONTROL = object6.CONTROL;
const NEW_LAYOUT_NO_SEARCH = object6.NEW_LAYOUT_NO_SEARCH;
const NEW_LAYOUT_WITH_SEARCH = object6.NEW_LAYOUT_WITH_SEARCH;
object7.variations = {[0]: {enabled: false, variant: CONTROL}, [1]: {enabled: true, variant: NEW_LAYOUT_NO_SEARCH},
[2]: {enabled: true, variant: NEW_LAYOUT_WITH_SEARCH}};
const apexExperiment10 = Reflect.apply(createApexExperiment, value13, [object7]);
const apexExperiment11 = apexModule.createApexExperiment({'name': '2026-05-quest-home-tile-redesign',
'kind': 'user', defaultConfig: {'useNewLayoutWithSearch': false, 'useNewTile': false,
'useLargeFeaturedTiles': false, 'ctaOnHover': false}, variations: {[0]: {'useNewLayoutWithSearch': false,
'useNewTile': false, 'useLargeFeaturedTiles': false, 'ctaOnHover': false}, [1]: {'useNewLayoutWithSearch': true,
'useNewTile': false, 'useLargeFeaturedTiles': false, 'ctaOnHover': false}, [2]: {'useNewLayoutWithSearch': true,
'useNewTile': true, 'useLargeFeaturedTiles': true, 'ctaOnHover': true}, [3]: {'useNewLayoutWithSearch': true,
'useNewTile': true, 'useLargeFeaturedTiles': false, 'ctaOnHover': true}, [4]: {'useNewLayoutWithSearch': true,
'useNewTile': true, 'useLargeFeaturedTiles': true, 'ctaOnHover': false}}});
const apexExperiment12 = apexModule.createApexExperiment({'name': '2026-05-quest-home-remove-expired-quests',
'kind': 'user', defaultConfig: {enabled: false}, variations: {[0]: {enabled: false}, [1]: {enabled: true}}});
const apexExperiment13 = apexModule.createApexExperiment({'name': '2026-05-bounty-stale-refresh-quest-home',
'kind': 'user', defaultConfig: {enabled: false}, variations: {[0]: {enabled: false}, [1]: {enabled: true}}});
const env0_7 = apexModule.createApexExperiment({'name': '2026-06-remove-quest-home-hero', 'kind': 'user',
defaultConfig: {enabled: false}, variations: {[0]: {enabled: false}, [1]: {enabled: true}}});
let Date = global.Date;
let date = new Date('2026-06-20T10:00:00-07:00');
Date = global.Date;
date = new Date('2026-06-23T10:00:00-07:00');
const Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const MINUTE = Millis.MINUTE;
const env0_10 = 5 * MINUTE;
const object8 = {CONTROL: 0};
object8[0] = 'CONTROL';
object8.LARGE_MASK_MARGIN = 1;
object8[1] = 'LARGE_MASK_MARGIN';
object8.REMOVE_QUEST_TITLE_SUFFIX = 2;
object8[2] = 'REMOVE_QUEST_TITLE_SUFFIX';
object8.REPLACE_QUEST_NAME_WITH_GAME_PUBLISHER = 3;
object8[3] = 'REPLACE_QUEST_NAME_WITH_GAME_PUBLISHER';
const value22 = apexModule;
createApexExperiment = value22.createApexExperiment;
const object9 = {'name': '2026-06-quest-home-layout-visual-tweaks', 'kind': 'user'};
CONTROL = object8.CONTROL;
object9.defaultConfig = {enabled: false, variant: CONTROL};
CONTROL = object8.CONTROL;
const LARGE_MASK_MARGIN = object8.LARGE_MASK_MARGIN;
const REMOVE_QUEST_TITLE_SUFFIX = object8.REMOVE_QUEST_TITLE_SUFFIX;
const REPLACE_QUEST_NAME_WITH_GAME_PUBLISHER = object8.REPLACE_QUEST_NAME_WITH_GAME_PUBLISHER;
object9.variations = {[0]: {enabled: false, variant: CONTROL}, [1]: {enabled: true, variant: LARGE_MASK_MARGIN},
[2]: {enabled: true, variant: REMOVE_QUEST_TITLE_SUFFIX}, [3]: {enabled: true,
variant: REPLACE_QUEST_NAME_WITH_GAME_PUBLISHER}};
const apexExperiment14 = Reflect.apply(createApexExperiment, value22, [object9]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/quests/experiments/index.tsx');
exports.VideoEndCardV2Experiment = value;
exports.NewVideoQuestProgressBarStylingExperiment = apexExperiment;
exports.DesktopActivityQuestHeaderExperiment = apexExperiment2;
exports.AppStoreBottomSheetOverlayFeatureGate = apexExperiment3;
exports.QuestReloadVideoOnObscuredExperiment = apexExperiment4;
exports.MutedVideoQuestNewDefaultsVariant = object2;
exports.MutedVideoQuestNewDefaultsExperiment = apexExperiment5;
exports.useQuestOrbsMultiplierMarketing = useQuestOrbsMultiplierMarketing;
exports.VideoQuestPlayerRefactorExperiment = apexExperiment6;
exports.ComposedQuestPlayerExperiment = apexExperiment7;
exports.MobileQuestOrbRewardModalCtaPriorityVariant = object4;
exports.useMobileQuestOrbRewardModalCtaPriorityExperiment = useMobileQuestOrbRewardModalCtaPriorityExperiment;
exports.MobileQuestHomeRedDotNotificationExperiment = apexExperiment8;
exports.QuestHeartbeatExecutableFingerprintExperiment = apexExperiment9;
exports.QuestHomeNewLayoutVariant = object6;
exports.QuestHomeNewLayout = apexExperiment10;
exports.QuestHomeTileRedesignExperiment = apexExperiment11;
exports.QuestHomeRemoveExpiredQuestsExperiment = apexExperiment12;
exports.BountyStaleRefreshQuestHomeExperiment = apexExperiment13;
exports.useShouldRemoveQuestHomeHero = useShouldRemoveQuestHomeHero;
exports.QuestHomeLayoutVisualTweakVariant = object8;
exports.QuestHomeLayoutVisualTweaksExperiment = apexExperiment14;
}
function useQuestOrbsMultiplierMarketing(a0) { // fn#74202, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9697:5179, offset: 0x01d84dbf, size: 189 bytes, params: 2, frame: 17
var object2;
const binding = env0_5;
const useConfig = binding.useConfig;
const enabled = Reflect.apply(useConfig, binding, [{location: a0}]).enabled;
const value2 = (require(9502) /* metro dependency 9502: QuestOrbMultiplierHooks */).useQuestOrbMultiplierEligibility();
object2 = {};
const QuestOrbMultiplierEligibilityType = (require(9503) /* metro dependency 9503: QuestOrbMultiplierUtils */).QuestOrbMultiplierEligibilityType;
const INELIGIBLE = QuestOrbMultiplierEligibilityType.INELIGIBLE;
object2.shouldShowBonusOrbsUX = value2 !== INELIGIBLE && value2 !== QuestOrbMultiplierEligibilityType.CREPE && enabled;
const QuestOrbsMultiplier = (require(9512) /* metro dependency 9512: QuestOrbsMultiplier */).QuestOrbsMultiplier;
const PREMIUM_TIER_2_MULTIPLIER_PERCENTAGE_POINTS = QuestOrbsMultiplier.PREMIUM_TIER_2_MULTIPLIER_PERCENTAGE_POINTS;
object2.multiplier = PREMIUM_TIER_2_MULTIPLIER_PERCENTAGE_POINTS / 100;
return object2;
}
function useMobileQuestOrbRewardModalCtaPriorityExperiment() { // fn#74203, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9697:5712, offset: 0x01d84e7c, size: 36 bytes, params: 1, frame: 12
const binding = env0_6;
const useConfig = binding.useConfig;
const ORBS_REWARD_MODAL = QuestsExperimentLocations.ORBS_REWARD_MODAL;
return Reflect.apply(useConfig, binding, [{location: ORBS_REWARD_MODAL}]);
}
function useShouldRemoveQuestHomeHero() { // fn#74204, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9697:6128, offset: 0x01d84ea0, size: 154 bytes, params: 1, frame: 16
let binding = env0_3;
const [property, env0_0] = env0_2(binding.useState(function() {
var Date = global.Date;
var value = Object.create(Date.prototype, {constructor: {value: Date}});
var value2 = new Date();
return value2 instanceof Object ? value2 : value;
}), 2);
binding.useEffect(_fun74206, []);
const r2 = property >= env0_8 && property < env0_9;
binding = env0_7;
const useConfig = binding.useConfig;
return r2 ? Reflect.apply(useConfig, binding,
[{location: r2 ? 'remove-quest-home-hero-eligible' : 'remove-quest-home-hero-ineligible'}]).enabled : !!r2;
}
function _fun74206() { // fn#74206, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9697:6237, offset: 0x01d84f58, size: 45 bytes, params: 1, frame: 14
const env0_0 = global.setInterval(_fun74207, env1_10);
return _fun74208;
}
function _fun74207() { // fn#74207, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9697:6261, offset: 0x01d84f85, size: 44 bytes, params: 1, frame: 11
const value = environment.__proto__;
const binding = env1_0;
const Date = global.Date;
return binding(new Date());
}