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

323 lines
21 KiB
TypeScript

/* Metro module 13568; source: modules/quests/native/QuestHooks.native.tsx; dependencies: [5, 31, 3849, 4234, 7093, 6528, 9488, 482, 13569, 7108, 566, 6531, 7091, 13590, 10915, 4007, 7556, 9483, 9479, 5176, 9495, 7116, 8045, 7114, 8105, 6772, 8087, 9527, 2] */
import Module00005 from '../../../by-id/module-00005.js'; /* Metro dependency 5 */
import ActionSheetStore from '../../action_sheet/native/ActionSheetStore.tsx'; /* Metro dependency 3849 */
import ApplicationStore from '../../applications/ApplicationStore.tsx'; /* Metro dependency 4234 */
import QuestStore from '../QuestStore.tsx'; /* Metro dependency 7093 */
import NewAdRequestBehaviorExperiment from '../experiments/NewAdRequestBehaviorExperiment.tsx'; /* Metro dependency 7108 */
import UseIsWindowLarge from '../../screen/native/useIsWindowLarge.tsx'; /* Metro dependency 7556 */
import UseQuestForPlacement from '../useQuestForPlacement.tsx'; /* Metro dependency 13590 */
import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ReactModule from '../../../by-id/module-00031-React.js'; /* Metro dependency 31 */
import * as ConstantsModule from '../../../external/discord_common/js/shared/Constants.tsx'; /* Metro dependency 482 */
import * as FluxModule from '../../../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */
import * as NavigationRouteUtilsNativeModule from '../../main_tabs_v2/helpers/NavigationRouteUtils.native.tsx'; /* Metro dependency 4007 */
import * as YouBarExperimentModule from '../../main_tabs_v2/YouBarExperiment.tsx'; /* Metro dependency 5176 */
import * as QuestConstantsModule from '../QuestConstants.tsx'; /* Metro dependency 6528 */
import * as QuestTypesModule from '../QuestTypes.tsx'; /* Metro dependency 6531 */
import * as QuestDataUtilsModule from '../utils/QuestDataUtils.tsx'; /* Metro dependency 7091 */
import * as QuestTaskUtilsModule from '../utils/QuestTaskUtils.tsx'; /* Metro dependency 7116 */
import * as CanLaunchFrameModule from '../../frames/utils/canLaunchFrame.tsx'; /* Metro dependency 8045 */
import * as QuestsEligibilityModule from '../lib/QuestsEligibility.tsx'; /* Metro dependency 9479 */
import * as QuestHooksModule from '../hooks/QuestHooks.tsx'; /* Metro dependency 9483 */
import * as CaptchaConstantsModule from '../../captcha/CaptchaConstants.tsx'; /* Metro dependency 9488 */
import * as AssetUtilsModule from '../lib/AssetUtils.tsx'; /* Metro dependency 9495 */
import * as IsChannelFocusedNativeModule from '../../panels/isChannelFocused.native.tsx'; /* Metro dependency 10915 */
import * as QuestDockHooksModule from './QuestDock/QuestDockHooks.tsx'; /* Metro dependency 13569 */
function _fun103102(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#103102, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:6, offset: 0x02258a64, size: 373 bytes, params: 8, frame: 21
const env0_0 = require;
const useIsMobileQuestDockRenderedBase2 = useIsMobileQuestDockRenderedBase;
const useIsMobileQuestDockRendered2 = useIsMobileQuestDockRendered;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(FileImportTrackerModule).fileFinishedImporting('modules/quests/native/QuestHooks.native.tsx');
exports.useMobileQuestDockHeight = useMobileQuestDockHeight;
exports.useMobileQuestDock = useMobileQuestDock;
exports.useIsMobileQuestDockVisibleToUser = useIsMobileQuestDockVisibleToUser;
exports.useIsMobileQuestDockRenderedBase = useIsMobileQuestDockRenderedBase2;
exports.useIsMobileQuestDockRendered = useIsMobileQuestDockRendered2;
exports.useQuestGameLogotypeAssetUrl = useQuestGameLogotypeAssetUrl;
exports.useQuestDockHeroAsset = useQuestDockHeroAsset;
exports.useHasWatchVideoOnMobileTasks = useHasWatchVideoOnMobileTasks;
exports.useMobileActivityQuest = useMobileActivityQuest;
function useIsMobileQuestDockRenderedBase(a0) { // fn#103103, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:268, offset: 0x02258bd9, size: 391 bytes, params: 2, frame: 23
var r6;
var r0;
var r1;
var moduleValue2;
const value2 = undefined;
const value3 = (UseIsWindowLarge)();
const value4 = (FluxModule).useStateFromStores([QuestStore], _fun103104, []);
const userStatus = a0 == null ? value2 : a0.userStatus;
const value5 = userStatus != null;
if (value5) {
moduleValue2 = require(7091) /* metro dependency 7091: QuestDataUtils */;
r6 = moduleValue2.isDismissed(a0.userStatus,
(require(6531) /* metro dependency 6531: QuestTypes */).QuestContent.QUEST_BAR_MOBILE);
} else {
r6 = value5;
}
const value6 = (a0 == null || a0.userStatus == null ? value2 : a0.userStatus.claimedAt) != null;
let value = QuestHooksModule;
value = value.useIsQuestExpired(a0);
const isEligibleForQuests = (QuestsEligibilityModule).getIsEligibleForQuests();
const YouBarExperiment = (YouBarExperimentModule).YouBarExperiment;
const {enabled, questDockEnabled} = YouBarExperiment.useConfig({location: 'QuestDock'});
if (value4) {
value = a0 == null;
r1 = value || value3;
r1 = !r1 ? enabled && !questDockEnabled : r1;
value = !r1;
r0 = value;
} else {
r0 = a0 != null && isEligibleForQuests;
r0 = r0 && !value;
r0 = r0 && !value6;
r0 = r0 && !r6;
r0 = r0 && !value3;
r0 = r0 && !(enabled && !questDockEnabled);
}
return r0;
function _fun103104() { // fn#103104, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:367, offset: 0x02258d60, size: 60 bytes, params: 1, frame: 13
const value = environment.__proto__;
const questStoreBinding = QuestStore;
const getQuestPreviewOverride = questStoreBinding.getQuestPreviewOverride;
const QuestContent = (QuestTypesModule).QuestContent;
const QUEST_BAR_MOBILE = QuestContent.QUEST_BAR_MOBILE;
return Reflect.apply(getQuestPreviewOverride, questStoreBinding, [QUEST_BAR_MOBILE]) != null;
}
}
function useIsMobileQuestDockRendered() { // fn#103105, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:852, offset: 0x02258d9c, size: 263 bytes, params: 1, frame: 23
const defaultImport = NewAdRequestBehaviorExperiment;
const useConfig = defaultImport.useConfig;
const enableNewRequestBehavior = Reflect.apply(useConfig, defaultImport,
[{location: 'QuestMobileDock'}]).enableNewRequestBehavior;
let useStateFromStores = FluxModule.useStateFromStores;
const value2 = Reflect.apply(useStateFromStores, FluxModule, [[QuestStore], function() {
return QuestStore.getQuestPreviewOverride(require(dependencyMap[11]).QuestContent.QUEST_BAR_MOBILE);
}, []]);
const value3 = FluxModule.useStateFromStores([QuestStore], _fun103107);
const value4 = FluxModule.useStateFromStores([QuestStore], _fun103108);
useStateFromStores = FluxModule.useStateFromStores;
return useIsMobileQuestDockRenderedBase(value2 ?? (enableNewRequestBehavior ? Reflect.apply(useStateFromStores,
FluxModule, [[QuestStore], _fun103109, [value4]]) : value3));
function _fun103107() { // fn#103107, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:1116, offset: 0x02258ed9, size: 96 bytes, params: 1, frame: 18
let value = environment.__proto__;
const getQuestForPlacement = QuestDataUtilsModule.getQuestForPlacement;
const quests = QuestStore.quests;
const questToDeliverForPlacement = QuestStore.questToDeliverForPlacement;
const QuestPlacement = (QuestTypesModule).QuestPlacement;
const MOBILE_HOME_DOCK_AREA = QuestPlacement.MOBILE_HOME_DOCK_AREA;
value = Reflect.apply(getQuestForPlacement, QuestDataUtilsModule, [quests, questToDeliverForPlacement,
MOBILE_HOME_DOCK_AREA]);
const value2 = null;
return value2 != value ? value : value2;
}
function _fun103108() { // fn#103108, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:1304, offset: 0x02258f39, size: 71 bytes, params: 1, frame: 13
let value = environment.__proto__;
const questAdDecisionByPlacement = QuestStore.questAdDecisionByPlacement;
const get = questAdDecisionByPlacement.get;
const QuestPlacement = (QuestTypesModule).QuestPlacement;
const MOBILE_HOME_DOCK_AREA = QuestPlacement.MOBILE_HOME_DOCK_AREA;
value = Reflect.apply(get, questAdDecisionByPlacement, [MOBILE_HOME_DOCK_AREA]);
const value2 = null;
return value2 != value ? value : value2;
}
function _fun103109() { // fn#103109, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:1457, offset: 0x02258f80, size: 84 bytes, params: 1, frame: 13
const value2 = null;
return value2 != (value2 == env0_0 ? undefined : env0_0.questId) && value2 != QuestStore.quests.get(env0_0.questId) ? QuestStore.quests.get(env0_0.questId) : value2;
}
}
function useMobileQuestDockHeight() { // fn#103110, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:1719, offset: 0x02258fd4, size: 53 bytes, params: 1, frame: 13
const value2 = useIsMobileQuestDockRendered();
let value = QuestDockHooksModule;
value = value.useQuestDockExternalOffset();
return value2 ? value : 0;
}
function useMobileQuestDock() { // fn#103111, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:1866, offset: 0x02259009, size: 204 bytes, params: 1, frame: 23
const defaultImport = NewAdRequestBehaviorExperiment;
const useConfig = defaultImport.useConfig;
const enableNewRequestBehavior = Reflect.apply(useConfig, defaultImport,
[{location: 'QuestMobileDock'}]).enableNewRequestBehavior;
const value2 = (require(566) /* metro dependency 566: flux */).useStateFromStores([QuestStore], function() {
return QuestStore.getQuestPreviewOverride(require(dependencyMap[11]).QuestContent.QUEST_BAR_MOBILE);
}, []);
const value = (require(566) /* metro dependency 566: flux */).useStateFromStores([QuestStore], _fun103113);
const defaultImport2 = UseQuestForPlacement;
const QuestPlacement = (QuestTypesModule).QuestPlacement;
const MOBILE_HOME_DOCK_AREA = QuestPlacement.MOBILE_HOME_DOCK_AREA;
return value2 ?? (enableNewRequestBehavior ? defaultImport2(MOBILE_HOME_DOCK_AREA) : value);
function _fun103113() { // fn#103113, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:2120, offset: 0x02258ed9, size: 96 bytes, params: 1, frame: 18
let value = environment.__proto__;
const getQuestForPlacement = QuestDataUtilsModule.getQuestForPlacement;
const quests = QuestStore.quests;
const questToDeliverForPlacement = QuestStore.questToDeliverForPlacement;
const QuestPlacement = (QuestTypesModule).QuestPlacement;
const MOBILE_HOME_DOCK_AREA = QuestPlacement.MOBILE_HOME_DOCK_AREA;
value = Reflect.apply(getQuestForPlacement, QuestDataUtilsModule, [quests, questToDeliverForPlacement,
MOBILE_HOME_DOCK_AREA]);
const value2 = null;
return value2 != value ? value : value2;
}
}
function useIsMobileQuestDockVisibleToUser(a0, a1) { // fn#103114, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:2391, offset: 0x022590d5, size: 208 bytes, params: 3, frame: 22
const value = a1;
const env0_0 = a0;
const value3 = (IsChannelFocusedNativeModule).useIsChannelFocused();
const value4 = (NavigationRouteUtilsNativeModule).useCurrentNavigationRouteName();
return value && !value3 && (NavigationRouteUtilsNativeModule.coerceGuildsRoute({name: value4}) != null || (require(566) /* metro dependency 566: flux */).useStateFromStores([QuestStore],
_fun103115) && (require(566) /* metro dependency 566: flux */).useStateFromStores([ActionSheetStore],
_fun103116));
function _fun103115() { // fn#103115, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:2599, offset: 0x022591a5, size: 45 bytes, params: 1, frame: 12
return env0_0 != null && QuestStore.isClaimingReward(env0_0.id);
}
function _fun103116() { // fn#103116, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:2674, offset: 0x022591d2, size: 38 bytes, params: 1, frame: 11
const value = environment.__proto__;
const key = ActionSheetStore.getKey();
return key === CAPTCHA_MODAL_KEY || key === QUEST_REWARD_CODE_CLAIM_BOTTOM_SHEET_KEY;
}
}
function useQuestGameLogotypeAssetUrl(a0) { // fn#103117, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:2903, offset: 0x022591f8, size: 44 bytes, params: 2, frame: 14
const env0_0 = a0;
return ReactModule.useMemo(_fun103118, [a0]);
function _fun103118() { // fn#103118, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:2962, offset: 0x02259224, size: 82 bytes, params: 1, frame: 18
const getQuestAsset = AssetUtilsModule.getQuestAsset;
const binding = env0_0;
const QuestAssetType = AssetUtilsModule.QuestAssetType;
const LOGO_TYPE = QuestAssetType.LOGO_TYPE;
const DARK = ThemeTypes.DARK;
return Reflect.apply(getQuestAsset, AssetUtilsModule, [binding, LOGO_TYPE, DARK]).url;
}
}
function useQuestDockHeroAsset(a0) { // fn#103119, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:3068, offset: 0x02259276, size: 44 bytes, params: 2, frame: 14
const env0_0 = a0;
return ReactModule.useMemo(_fun103120, [a0]);
function _fun103120() { // fn#103120, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:3120, offset: 0x022592a2, size: 221 bytes, params: 1, frame: 18
var r1;
var moduleValue2;
var resolveAsset;
const value = environment.__proto__;
const getQuestAsset = AssetUtilsModule.getQuestAsset;
let binding = env0_0;
const QuestAssetType = AssetUtilsModule.QuestAssetType;
const QUEST_BAR_HERO = QuestAssetType.QUEST_BAR_HERO;
const value3 = Reflect.apply(getQuestAsset, AssetUtilsModule, [binding, QUEST_BAR_HERO]);
const questBarHeroVideo = binding.config.assets.questBarHeroVideo;
const value4 = null;
if (value4 != questBarHeroVideo) {
moduleValue2 = AssetUtilsModule;
resolveAsset = moduleValue2.resolveAsset;
binding = env0_0;
r1 = Reflect.apply(resolveAsset, moduleValue2, [binding.id, binding.config.assets.questBarHeroVideo]);
} else {
r1 = value4;
}
const isAnimated = value3.isAnimated;
const url = value3.url;
return {staticUrl: isAnimated ? url.replace(AssetUtilsModule.EXTENSION_RE, '.png') : url, videoAsset: r1};
}
}
function useHasWatchVideoOnMobileTasks(a0) { // fn#103121, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:3439, offset: 0x0225937f, size: 44 bytes, params: 2, frame: 14
const env0_0 = a0;
return ReactModule.useMemo(_fun103122, [a0]);
function _fun103122() { // fn#103122, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:3499, offset: 0x022593ab, size: 52 bytes, params: 1, frame: 12
const value = environment.__proto__;
return (QuestTaskUtilsModule).hasWatchVideoOnMobileTasks({config: env0_0});
}
}
function useMobileActivityQuest(a0) { // fn#103123, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:3583, offset: 0x022593df, size: 403 bytes, params: 2, frame: 22
const env0_0 = a0;
const value2 = undefined;
const activityApplicationId = (QuestTaskUtilsModule).getActivityApplicationId(a0);
const application = (FluxModule).useStateFromStores([ApplicationStore],
_fun103124);
const canLaunchFrame2 = (CanLaunchFrameModule).canLaunchFrame(application);
const canLaunchFrame22 = canLaunchFrame2;
const r3 = (require(7114) /* metro dependency 7114: QuestUtils */).canLaunchActivity(a0) && a0.config.features.includes(QuestVariants.MOBILE_ACTIVITY_QUEST) && (importDefault(8105) /* metro dependency 8105: isActivitySupportedOnClientPlatform */)(application == null || application.embeddedActivityConfig == null ? value2 : application.embeddedActivityConfig.supported_platforms) && (canLaunchFrame2 || (application == null || application.bot == null ? value2 : application.bot.id) != null);
const binding = r3;
binding.useEffect(_fun103125, [application, activityApplicationId, a0.config.features]);
const useCallback = binding.useCallback;
let value = canLaunchFrame22(_fun103127);
value = Reflect.apply(useCallback, binding, [value, [canLaunchFrame2, application, r3]]);
return {isMobileActivityQuest: r3, questApplication: application, launchMobileActivity: value};
function _fun103124() { // fn#103124, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:3700, offset: 0x02259572, size: 27 bytes, params: 1, frame: 11
return ApplicationStore.getApplication(env0_1);
}
function _fun103125() { // fn#103125, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:3988, offset: 0x0225958d, size: 124 bytes, params: 1, frame: 14
var value6;
var defaultImport;
if (application == null && env0_1 != null && env0_0.config.features.includes(QuestVariants.MOBILE_ACTIVITY_QUEST)) {
value6 = environment.__proto__;
defaultImport = importDefault(6772) /* metro dependency 6772: ApplicationActionCreators */;
defaultImport.fetchApplications([env0_1], false);
}
}
function* _fun103127() { // fn#103127, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13758:4149, offset: 0x02259614, size: 241 bytes, params: 1, frame: 15
var id;
var value4;
var value5;
var launchActivityInBotDM;
var object;
var value7;
var value8;
if (true) {
value = environment.__proto__;
if (env1_4) {
if (env1_3) {
value7 = environment.__proto__.__proto__;
value8 = env2_1(env2_2[26]);
yield value8.launchFrame({applicationId: dependencyMap.id});
if (false) {
return undefined;
}
return undefined;
}
id = dependencyMap == null || dependencyMap.bot == null ? undefined : dependencyMap.bot.id;
if (id == null) {
return undefined;
}
value4 = environment.__proto__.__proto__;
value5 = env2_0(env2_2[27]);
launchActivityInBotDM = value5.launchActivityInBotDM;
object = {};
id = dependencyMap.id;
object.appId = id;
id = dependencyMap.bot.id;
object.botId = id;
object.analyticsLocations = [];
yield Reflect.apply(launchActivityInBotDM, value5, [object]);
if (false) {
return undefined;
}
}
}
}
}
}
global.__d(_fun103102, 13568, [5, 31, 3849, 4234, 7093, 6528, 9488, 482, 13569, 7108, 566, 6531, 7091, 13590, 10915,
4007, 7556, 9483, 9479, 5176, 9495, 7116, 8045, 7114, 8105, 6772, 8087, 9527,
2]) /* metro module 13568, dependencies: [5, 31, 3849, 4234, 7093, 6528, 9488, 482, 13569, 7108, 566, 6531, 7091, 13590, 10915, 4007, 7556, 9483, 9479, 5176, 9495, 7116, 8045, 7114, 8105, 6772, 8087, 9527, 2] */;