/* 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] */;