// Module ID: 10723 // Function ID: 10724 // Name: useQuests // Dependencies: [5, 32, 19, 1995, 1391, 5226, 1922, 7490, 7492, 7491, 6753, 676, 1924, 589, 10724, 10516, 500, 10540, 7489, 687, 7512, 7514, 7517, 10530, 12, 1217, 10725, 10533, 10726, 1994, 10728, 6760, 10743, 7518, 7183, 10746, 10535, 10416, 7507, 10747, 1236, 1898, 4490, 6756, 7508, 4314, 1363, 10525, 4042, 10748, 698, 1370, 10750, 10730, 10754, 4069, 9919, 9912, 2] // Exports: useClaimedCollectibleRewardMessage, useClaimedQuests, useConnectedAccounts, useConnectedConsoleLinkOnClick, useCosponsoredLogotypeAsset, useExpiredQuestsMap, useFetchQuestHomeBounties, useFilteredQuests, useGetOrFetchApplicationForConsoleQuests, useIsPreviewerOnAnyQuest, useIsQuestAccessSuspended, useIsQuestEligibleForMembersListPopout, useIsQuestExpired, useIsQuestProgressingOnConsole, useIsQuestProgressingOnDesktop, useIsQuestProgressingVideoQuest, useLaunchInGameActivityQuest, useManuallyStartConsoleQuest, useNonNullableQuest, useOnOpenGameClick, useProgressState, useQuest, useQuestBarImpressionSurvey, useQuestBarOrDockModeChangeTracking, useQuestCollectibles, useQuestCompletionDetails, useQuestForMemberListSocialEntryPoint, useQuestFormattedDate, useQuestHomeBounties, useQuestHomeFilterOptions, useQuestHomeHeroShelf, useQuestHomeSortOptions, useQuestHomeSortingFilteringAnalytics, useQuestHowToHelpArticle, useQuestOrbRewardMultiplier, useQuestPreviewActions, useQuestWarningTips, useQuestsWithPreviewAccess, useSelectedTaskPlatform, useShouldShowBonusOrbsUX, useShouldShowPreviewToolTab, useShouldShowQuestPreviewOverrides, useShouldShowQuestsActivityPanelItem, useThirdPartyTaskDetails, useWaitingForConsoleConnection // Module 10723 (useQuests) import initialize from "initialize" /* 589 */; import setDefault from "set" /* 687 */; import MurmurHashV3Default from "MurmurHashV3" /* 1217 */; import combinedDefault from "combined" /* 1994 */; import getPremiumPlanItem from "getPremiumPlanItem" /* 4042 */; import useGetOrFetchApplicationsDefault from "useGetOrFetchApplications" /* 7183 */; import getQuestDeliveryDataForPlacement from "getQuestDeliveryDataForPlacement" /* 7489 */; import getApplicationIdsByTaskTypes from "getApplicationIdsByTaskTypes" /* 7514 */; import useFetchCollectiblesProduct from "useFetchCollectiblesProduct" /* 10416 */; import _getDefaultRewardName from "_getDefaultRewardName" /* 10530 */; import getContextualEntrypointHeading from "getContextualEntrypointHeading" /* 10535 */; import useRefocusOrLaunchActivityDefault from "useRefocusOrLaunchActivity" /* 10748 */; import closure_3 from "asyncGeneratorStep" /* 5 */; import closure_4 from "_slicedToArray" /* 32 */; import closure_5 from "noop" /* 19 */; import closure_6 from "_getSystemLocale" /* 1995 */; import closure_7 from "ensureGuildLoaded" /* 1391 */; import closure_8 from "set" /* 5226 */; import closure_9 from "mergeGuildAvatar" /* 1922 */; import closure_10 from "set" /* 7490 */; import { useConsoleQuestUIStore } from "useConsoleQuestUIStore" /* 7492 */; import closure_12 from "initializeState" /* 7491 */; import QuestsExperimentLocations from "QuestsExperimentLocations" /* 6753 */; import ME from "ME" /* 676 */; import { PremiumTypes } from "GuildFeatures" /* 1924 */; require = arg1; function useQuests(arg0) { obj = arg0; if (arg0 === undefined) { obj = { fetchPolicy: "cache-only", callerSource: "unknown" }; } let hasFetched; dependencyMap = undefined; let isFetchingCurrentQuests; let lastFetchedCurrentQuests; let isEligibleForQuests; const tmp = lastFetchedCurrentQuests(isEligibleForQuests.useState(false), 2); hasFetched = tmp[0]; dependencyMap = tmp[1]; let items = [closure_12]; let quests = obj(589).useStateFromStoresArray(items, () => { const quests = closure_12.quests; const items = [...quests.values()]; return items; }); let obj2 = obj(589); const items1 = [closure_12]; let excludedQuests = obj(589).useStateFromStoresArray(items1, () => { const excludedQuests = closure_12.excludedQuests; const items = [...excludedQuests.values()]; return items; }); let obj3 = obj(589); const items2 = [closure_12]; const stateFromStoresObject = obj(589).useStateFromStoresObject(items2, () => ({ isFetchingCurrentQuests: closure_12.isFetchingCurrentQuests, lastFetchedCurrentQuests: closure_12.lastFetchedCurrentQuests })); isFetchingCurrentQuests = stateFromStoresObject.isFetchingCurrentQuests; lastFetchedCurrentQuests = stateFromStoresObject.lastFetchedCurrentQuests; const obj4 = obj(589); isEligibleForQuests = obj(10724).getIsEligibleForQuests(); const items3 = [obj.fetchPolicy, isEligibleForQuests, hasFetched, isFetchingCurrentQuests, lastFetchedCurrentQuests, obj.callerSource]; const effect = isEligibleForQuests.useEffect(() => { const fetchPolicy = obj.fetchPolicy; if ("cache-only" !== fetchPolicy) { if ("cache-or-network" === fetchPolicy) { let flag = 0 === lastFetchedCurrentQuests; } else { flag = true; if ("cache-and-network" !== fetchPolicy) { const fetchPolicy2 = tmp.fetchPolicy; } } if (flag) { flag = isEligibleForQuests; } if (flag) { flag = !hasFetched; } if (flag) { flag = !isFetchingCurrentQuests; } if (flag) { dependencyMap(true); obj = obj(10516); const currentQuests = obj.fetchCurrentQuests(); if (obj2.isMac()) { const state = hasFetched(10540).getState(); const obj3 = hasFetched(10540); } obj2 = obj(500); } } }, items3); return { quests, excludedQuests, isFetchingCurrentQuests, hasFetched }; } function defaultSortFn(id, id2, questHomeHero, get) { let tmp2 = id.id === closure_20; if (tmp2) { const userStatus = id.userStatus; let completedAt; if (userStatus != null) { completedAt = userStatus.completedAt; } tmp2 = null == completedAt; } let tmp5 = id2.id === closure_20; if (tmp5) { const userStatus2 = id2.userStatus; let completedAt1; if (userStatus2 != null) { completedAt1 = userStatus2.completedAt; } tmp5 = null == completedAt1; } if (tmp2 !== tmp5) { let num15 = 1; if (tmp2) { num15 = c28; } return num15; } else { const isQuestExpiredResult = getQuestDeliveryDataForPlacement.isQuestExpired(id); const userStatus12 = id.userStatus; let claimedAt; if (userStatus12 != null) { claimedAt = userStatus12.claimedAt; } const userStatus3 = id2.userStatus; let claimedAt1; if (userStatus3 != null) { claimedAt1 = userStatus3.claimedAt; } const userStatus4 = id.userStatus; let enrolledAt; if (userStatus4 != null) { enrolledAt = userStatus4.enrolledAt; } const userStatus5 = id2.userStatus; let enrolledAt1; if (userStatus5 != null) { enrolledAt1 = userStatus5.enrolledAt; } const result = 30 * setDefault.Millis.MINUTE; const userStatus6 = id.userStatus; let completedAt2; if (userStatus6 != null) { completedAt2 = userStatus6.completedAt; } const userStatus7 = id.userStatus; let enrolledAt2; if (userStatus7 != null) { enrolledAt2 = userStatus7.enrolledAt; } let tmp21 = null != enrolledAt2 && null == completedAt2; if (tmp21) { const _Date = Date; const userStatus8 = id.userStatus; let enrolledAt3; const timestamp = Date.now(); if (userStatus8 != null) { enrolledAt3 = userStatus8.enrolledAt; } const date = new Date(enrolledAt3); tmp21 = timestamp - date.getTime() > result; } const userStatus9 = id2.userStatus; let completedAt3; if (userStatus9 != null) { completedAt3 = userStatus9.completedAt; } const userStatus10 = id2.userStatus; let enrolledAt4; if (userStatus10 != null) { enrolledAt4 = userStatus10.enrolledAt; } let tmp32 = null != enrolledAt4 && null == completedAt3; if (tmp32) { const _Date2 = Date; const userStatus11 = id2.userStatus; let enrolledAt5; const timestamp1 = Date.now(); if (userStatus11 != null) { enrolledAt5 = userStatus11.enrolledAt; } const date1 = new Date(enrolledAt5); tmp32 = timestamp1 - date1.getTime() > result; } if (isQuestExpiredResult) { if (tmp9 !== tmp11) { let num14 = 1; if (tmp9) { num14 = c28; } let result1 = num14; } else if (tmp13 !== tmp15) { let num13 = 1; if (tmp13) { num13 = c28; } result1 = num13; } else { const expiresAt2 = id.config.expiresAt; let num12 = 1; if (constants7.DESC === constants7.DESC) { num12 = c28; } result1 = expiresAt2.localeCompare(id2.config.expiresAt) * num12; } return result1; } else { questHomeHero = questHomeHero.questHomeHero; if (null != questHomeHero) { if (!questHomeHero.isQuestHomeHeroShelfEnabled) { let tmp50Result = tmp50(7512); const result2 = tmp50Result.isQuestFeaturedByHero(questHomeHero, id.id); tmp50Result = tmp50(7512); let num2 = 1; if (result2) { num2 = c28; } return num2; } } const questType = tmp50(7512).getQuestType(id.config); const tmp50Result1 = tmp50(7512); const questType1 = tmp50(7512).getQuestType(id2.config); const tmp50Result2 = tmp50(7512); const result3 = tmp50(7514).hasWatchVideoOnMobileTasks(id); const tmp50Result3 = tmp50(7514); const result4 = tmp50(7514).hasWatchVideoOnMobileTasks(id2); if (result3 !== result4) { if (!result3) { return num3; } let num11 = 1; if (result3) { num11 = c28; } num3 = num11; } if (questType !== questType1) { num3 = 1; if (questType === tmp50(7517).QuestType.VIDEO) { num3 = c28; } } if (tmp21 === tmp32) { if (tmp9 !== tmp11) { let num9 = 1; if (!tmp9) { num9 = c28; } let num5 = num9; } else if (tmp13 !== tmp15) { let num8 = 1; if (tmp13) { num8 = c28; } num5 = num8; } else { let value = get.get(id.id); value = get.get(id2.id); if (null != value) { if (null != value) { if (value !== value) { let num6 = value - value; } else { num6 = 0; if (id.id !== id2.id) { let num7 = 1; if (id.id < id2.id) { num7 = c28; } num6 = num7; } } } } if (null != value) { num5 = c28; } else { let num4 = 1; num5 = 1; if (null == value) { const expiresAt = id.config.expiresAt; if (constants7.ASC === tmp56.DESC) { num4 = c28; } num5 = expiresAt.localeCompare(id2.config.expiresAt) * num4; } } tmp56 = constants7; } } let num10 = 1; if (!tmp21) { num10 = c28; } num5 = num10; const tmp50Result4 = tmp50(7514); } const obj9 = getQuestDeliveryDataForPlacement; const tmp19 = null != completedAt2; const tmp30 = null != completedAt3; } } function recentSortFn(config, config2) { const startsAt = config.config.startsAt; let num = 1; if (constants7.DESC === constants7.DESC) { num = c28; } return startsAt.localeCompare(config2.config.startsAt) * num; } function recentlyEnrolledSortFn(userStatus, userStatus2) { userStatus = userStatus.userStatus; let enrolledAt; if (userStatus != null) { enrolledAt = userStatus.enrolledAt; } userStatus2 = userStatus2.userStatus; if (userStatus2 != null) { enrolledAt = userStatus2.enrolledAt; } if (null == enrolledAt) { if (null == enrolledAt) { const expiresAt = userStatus.config.expiresAt; let num3 = 1; if (constants7.DESC === constants7.DESC) { num3 = c28; } let num = expiresAt.localeCompare(userStatus2.config.expiresAt) * num3; } return num; } if (null != enrolledAt) { if (null == enrolledAt) { num = c28; } } if (null != enrolledAt) { let num2 = 1; if (constants7.DESC === constants7.DESC) { num2 = c28; } num = enrolledAt.localeCompare(enrolledAt) * num2; } else { num = 1; } } function expiringSoonSortFn(config, config2) { const expiresAt = config.config.expiresAt; let num = 1; if (constants7.ASC === constants7.DESC) { num = c28; } return expiresAt.localeCompare(config2.config.expiresAt) * num; } function doesQuestPassTaskFilter(quest) { if (constants4.VIDEO === arg1) { return getApplicationIdsByTaskTypes.hasWatchVideoTasks(quest); } else if (tmp.PLAY === arg1) { obj = getApplicationIdsByTaskTypes; obj = { quest: null }; obj[0] = quest; let hasPlayOnDesktopTaskResult = obj.hasPlayOnDesktopTask(obj); if (!hasPlayOnDesktopTaskResult) { let tmp2Result = tmp2(7514); obj = { quest: null }; obj[0] = quest; hasPlayOnDesktopTaskResult = tmp2Result.hasStreamOnDesktopTask(obj); } if (!hasPlayOnDesktopTaskResult) { tmp2Result = tmp2(7514); hasPlayOnDesktopTaskResult = tmp2Result.hasPlayActivityTask(quest); } if (!hasPlayOnDesktopTaskResult) { hasPlayOnDesktopTaskResult = tmp2(7514).isConsoleQuest(quest); const tmp2Result1 = tmp2(7514); } if (!hasPlayOnDesktopTaskResult) { hasPlayOnDesktopTaskResult = tmp2(7514).isInGameQuest(quest); const tmp2Result2 = tmp2(7514); } return hasPlayOnDesktopTaskResult; } else { return false; } } function doesQuestPassRewardFilter(config) { if (constants5.VIRTUAL_CURRENCY === arg1) { return _getDefaultRewardName.hasVirtualCurrencyReward(config.config); } else if (tmp.COLLECTIBLE === arg1) { return _getDefaultRewardName.hasCollectiblesQuestReward(config.config); } else if (tmp.IN_GAME === arg1) { let hasInGameQuestRewardResult = _getDefaultRewardName.hasInGameQuestReward(config.config); if (!hasInGameQuestRewardResult) { hasInGameQuestRewardResult = _getDefaultRewardName.hasQuestRewardCode(config.config); const tmp2Result = _getDefaultRewardName; } return hasInGameQuestRewardResult; } else { return false; } } function sortQuests(arr) { let tmp = arg1; if (arg1 === undefined) { tmp = closure_36; } let tmp2 = arg2; if (arg2 === undefined) { tmp2 = closure_37; } ({ sortMethod, filters } = tmp); obj = arr; if (null != filters) { obj = arr; if (0 !== filters.length) { let found = arr; if (0 !== filters.length) { _require = _require(12).groupBy(filters, "group"); found = arr.filter((arg0) => { closure_0 = arg0; const entries = Object.entries(closure_0); return entries.every((arg0) => { [tmp, arr] = arg0; if ("task" === tmp) { let tmp2 = closure_1_34; } else if ("reward" === tmp) { tmp2 = closure_1_35; } closure_1 = tmp2; return 0 === arr.length || arr.some((arg0) => callback(closure_0, arg0.filter)); }); }); let obj2 = _require(12); } obj = found; } } if (constants3.MOST_RECENT === sortMethod) { let tmp8 = recentSortFn; } else if (tmp7.RECENTLY_ENROLLED === sortMethod) { tmp8 = recentlyEnrolledSortFn; } else if (tmp7.EXPIRING_SOON === sortMethod) { tmp8 = expiringSoonSortFn; } else { const SUGGESTED = tmp7.SUGGESTED; tmp8 = defaultSortFn; } _require = tmp8; closure_1 = tmp2; dependencyMap = (function computeRenewableQuestSortKeys(arr, currentUserId, isRenewableEndDateSortEnabled) { const map = new Map(); if (isRenewableEndDateSortEnabled) { if (null != currentUserId) { const iter = arr[Symbol.iterator](); const nextResult = iter.next(); while (iter !== undefined) { let tmp8 = nextResult; let tmp9 = callback; let tmp10 = dependencyMap; let obj2 = callback(7512); let tmp11 = constants; if (obj2.hasVariant(nextResult, constants.RENEWABLE_END_DATE)) { let tmp12 = nextResult; let tmp13 = callback2; let result = map.set(tmp8.id, callback2(currentUserId, tmp8.id)); } continue; } return map; } } return map; })(obj, tmp2.currentUserId, tmp2.isRenewableEndDateSortEnabled); return obj.sort((arg0, arg1) => { const isQuestExpiredResult = callback(7489).isQuestExpired(arg0); obj = callback(7489); const tmp2 = !isQuestExpiredResult; if (tmp2 !== !obj2.isQuestExpired(arg1)) { let num = 1; if (!isQuestExpiredResult) { num = closure_1_28; } let tmp8 = num; } else { tmp8 = callback(arg0, arg1, closure_1, dependencyMap); } return tmp8; }); } function seededQuestSortKey(arg0, arg1) { return MurmurHashV3Default.v3("" + arg0 + ":" + arg1) >>> 0; } function useAllQuests(quests, sortMethod) { let stateFromStores1 = quests; let isShelfEnabled = sortMethod; obj = stateFromStores1(memo[13]); const items = [closure_12]; const stateFromStores = obj.useStateFromStores(items, () => null); stateFromStores1 = undefined; isShelfEnabled = undefined; const items1 = [closure_12]; stateFromStores1 = stateFromStores1(memo[13]).useStateFromStores(items1, () => quests.quests); let questIds; if (stateFromStores != null) { questIds = stateFromStores.questIds; } isShelfEnabled = questIds; const items2 = [stateFromStores1, questIds]; isShelfEnabled = React.useMemo(() => { if (null == questIds) { obj = { shelfQuests: null, isShelfEnabled: false }; obj[0] = []; return obj; } else { const mapped = arr.map((arg0) => lib.get(arg0)); const found = mapped.filter(stateFromStores(closure_1_2[51]).isNotNullish); const found1 = found.filter((arg0) => !lib(table[18]).isQuestExpired(arg0)); if (found1.length <= 1) { obj = { shelfQuests: null, isShelfEnabled: false }; obj[0] = []; } else { obj = { shelfQuests: null, isShelfEnabled: true }; obj[0] = found1; } return obj; } arr = questIds; }, items2).isShelfEnabled; const obj2 = stateFromStores1(memo[13]); const tmp = stateFromStores1; const items3 = [closure_9]; const stateFromStores2 = stateFromStores1(memo[13]).useStateFromStores(items3, () => { currentUser = currentUser.getCurrentUser(); let id; if (currentUser != null) { id = currentUser.id; } if (id == null) { id = null; } return id; }); memo = stateFromStores2; const tmpResult = stateFromStores1(memo[13]); obj = { location: constants2.QUEST_HOME_MOBILE }; const enabled = isShelfEnabled(memo[26]).useConfig(obj).enabled; closure_3 = enabled; const items4 = [stateFromStores, isShelfEnabled, stateFromStores2, enabled]; memo = React.useMemo(() => ({ questHomeHero: stateFromStores1, isQuestHomeHeroShelfEnabled: isShelfEnabled, currentUserId: memo, isRenewableEndDateSortEnabled: closure_3 }), items4); closure_3 = React.useRef([]); closure_4 = React.useRef(sortMethod.sortMethod); React = React.useRef(sortMethod.filters); closure_6 = React.useRef(0); closure_7 = React.useRef(memo); const items5 = [quests, sortMethod, memo]; return React.useMemo(() => { if (0 === stateFromStores1.length) { return []; } else { if (ref.current.length > 0) { if (ref4.current === arr.length) { if (ref2.current === isShelfEnabled.sortMethod) { if (ref3.current === tmp3.filters) { if (ref5.current === memo) { return tmp15.current; } } } } } const mapped = closure_1_38(arr, isShelfEnabled, memo).map((id) => id.id); ref.current = mapped; ref2.current = isShelfEnabled.sortMethod; ref3.current = isShelfEnabled.filters; ref4.current = arr.length; ref5.current = memo; return mapped; } }, items5); } function isQuestHiddenFromQuestHome(userStatus) { let isQuestExpiredResult = getQuestDeliveryDataForPlacement.isQuestExpired(userStatus); if (isQuestExpiredResult) { isQuestExpiredResult = !getQuestDeliveryDataForPlacement.hasUnclaimedReward(userStatus.userStatus); const tmpResult = getQuestDeliveryDataForPlacement; } return isQuestExpiredResult; } function useIsQuestProgressing(quest) { let _require = quest; const items = [closure_12]; let stateFromStores = _require(589).useStateFromStores(items, () => closure_1_12.isProgressingOnDesktop(quest.id)); _require = quest; const items1 = [quest]; _require = quest; const memo = React.useMemo(() => quest(first[21]).isQuestProgressingOnConsole(quest), items1); obj = _require(589); const items2 = [closure_12]; const items3 = [quest, _require(589).useStateFromStores(items2, () => closure_1_12.getOptimisticProgress(quest.id, quest(closure_1_2[31]).FirstPartyQuestTaskTypes.WATCH_VIDEO))]; const memo1 = React.useMemo(() => quest(closure_1_2[32]).isVideoQuestProgressing(quest), items3); if (!stateFromStores) { stateFromStores = memo; } if (!stateFromStores) { stateFromStores = memo1; } return stateFromStores; } function useTaskPlatformScreen(quest, questTaskDetails) { let _require = quest; closure_1 = questTaskDetails; const id = quest.id; _require = id; const items = [closure_12]; const items1 = [_require(first[13]).useStateFromStores(items, () => closure_1_12.selectedTaskPlatform(closure_0)), ]; const items2 = [id]; items1[1] = memo2.useCallback((platform) => quest(first[15]).selectTaskPlatform(quest, platform), items2); const tmp = hasItem1(items1, 2); first = tmp[0]; const items3 = [quest]; const memo = memo2.useMemo(() => quest(first[30]).supportedTaskPlatforms(quest), items3); const hasItem = memo.includes(constants.DESKTOP); hasItem1 = memo.includes(constants.CONSOLE); _require = quest; obj = _require(first[13]); let obj2 = memo2; const items4 = [closure_12]; _require = quest; const items5 = [quest]; const stateFromStores = _require(first[13]).useStateFromStores(items4, () => closure_1_12.isProgressingOnDesktop(quest.id)); const items6 = [questTaskDetails]; const memo1 = memo2.useMemo(() => quest(first[21]).isQuestProgressingOnConsole(quest), items5); memo2 = memo2.useMemo(() => { const match = quest(first[42]).match(closure_1); const str = quest(first[42]); obj = { taskType: quest(first[31]).FirstPartyQuestTaskTypes.PLAY_ON_DESKTOP }; const withResult = match.with({ percentComplete: 0 }, () => null); obj = { taskType: quest(first[31]).FirstPartyQuestTaskTypes.PLAY_ACTIVITY }; const withResult1 = match.with({ percentComplete: 0 }, () => null).with(obj, () => constants.DESKTOP); const withResult2 = match.with({ percentComplete: 0 }, () => null).with(obj, () => constants.DESKTOP).with(obj, () => constants.DESKTOP); obj1 = { taskType: quest(first[31]).FirstPartyQuestTaskTypes.WATCH_VIDEO }; const withResult3 = withResult2.with({ taskType: quest(first[31]).FirstPartyQuestTaskTypes.WATCH_VIDEO }, () => constants.DESKTOP); const obj2 = { taskType: quest(first[31]).FirstPartyQuestTaskTypes.WATCH_VIDEO_ON_MOBILE }; const withResult4 = withResult3.with({ taskType: quest(first[31]).FirstPartyQuestTaskTypes.WATCH_VIDEO_ON_MOBILE }, () => constants.DESKTOP); const obj3 = { taskType: quest(first[31]).FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP }; const withResult5 = withResult4.with({ taskType: quest(first[31]).FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP }, () => constants.DESKTOP); const obj4 = { taskType: quest(first[31]).FirstPartyQuestTaskTypes.PLAY_ON_XBOX }; const withResult6 = withResult5.with({ taskType: quest(first[31]).FirstPartyQuestTaskTypes.PLAY_ON_XBOX }, () => constants.CONSOLE); const obj5 = { taskType: quest(first[31]).FirstPartyQuestTaskTypes.PLAY_ON_PLAYSTATION }; const withResult7 = withResult6.with({ taskType: quest(first[31]).FirstPartyQuestTaskTypes.PLAY_ON_PLAYSTATION }, () => constants.CONSOLE); const obj6 = { taskType: quest(first[31]).FirstPartyQuestTaskTypes.ACHIEVEMENT_IN_GAME }; const withResult8 = withResult7.with({ taskType: quest(first[31]).FirstPartyQuestTaskTypes.ACHIEVEMENT_IN_GAME }, () => constants.DESKTOP); const obj7 = { taskType: quest(first[31]).FirstPartyQuestTaskTypes.ACHIEVEMENT_IN_ACTIVITY }; return withResult8.with({ taskType: quest(first[31]).FirstPartyQuestTaskTypes.ACHIEVEMENT_IN_ACTIVITY }, () => constants.DESKTOP).exhaustive(); }, items6); if (stateFromStores) { let DESKTOP = tmp3.DESKTOP; } else { DESKTOP = null; if (memo1) { DESKTOP = tmp3.CONSOLE; } } const items7 = [hasItem1, hasItem, memo2, DESKTOP, first]; const items8 = [ obj2.useMemo(() => { obj = { lastPlatformProgress: memo2, currentProgressingPlatform: DESKTOP, selectedPlatform: first }; const match = quest(first[42]).match(obj); obj = { currentProgressingPlatform: closure_1_13.CONSOLE }; const str = quest(first[42]); obj = { currentProgressingPlatform: closure_1_13.DESKTOP }; const withResult = match.with(obj, () => callback(6756).TaskPlatformScreen.CONSOLE); obj1 = { currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.CONSOLE }; const withResult1 = match.with(obj, () => callback(6756).TaskPlatformScreen.CONSOLE).with(obj, () => callback(6756).TaskPlatformScreen.DESKTOP); const obj2 = { currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.DESKTOP }; const withResult2 = match.with(obj, () => callback(6756).TaskPlatformScreen.CONSOLE).with(obj, () => callback(6756).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.CONSOLE }, () => callback(6756).TaskPlatformScreen.CONSOLE); const obj3 = { currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: closure_1_13.CONSOLE }; const withResult3 = match.with(obj, () => callback(6756).TaskPlatformScreen.CONSOLE).with(obj, () => callback(6756).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.CONSOLE }, () => callback(6756).TaskPlatformScreen.CONSOLE).with({ currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.DESKTOP }, () => callback(6756).TaskPlatformScreen.DESKTOP); const obj4 = { currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: closure_1_13.DESKTOP }; const withResult4 = match.with(obj, () => callback(6756).TaskPlatformScreen.CONSOLE).with(obj, () => callback(6756).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.CONSOLE }, () => callback(6756).TaskPlatformScreen.CONSOLE).with({ currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.DESKTOP }, () => callback(6756).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: closure_1_13.CONSOLE }, () => callback(6756).TaskPlatformScreen.CONSOLE); const withResult5 = match.with(obj, () => callback(6756).TaskPlatformScreen.CONSOLE).with(obj, () => callback(6756).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.CONSOLE }, () => callback(6756).TaskPlatformScreen.CONSOLE).with({ currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.DESKTOP }, () => callback(6756).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: closure_1_13.CONSOLE }, () => callback(6756).TaskPlatformScreen.CONSOLE).with({ currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: closure_1_13.DESKTOP }, () => callback(6756).TaskPlatformScreen.DESKTOP); return match.with(obj, () => callback(6756).TaskPlatformScreen.CONSOLE).with(obj, () => callback(6756).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.CONSOLE }, () => callback(6756).TaskPlatformScreen.CONSOLE).with({ currentProgressingPlatform: null, lastPlatformProgress: closure_1_13.DESKTOP }, () => callback(6756).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: closure_1_13.CONSOLE }, () => callback(6756).TaskPlatformScreen.CONSOLE).with({ currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: closure_1_13.DESKTOP }, () => callback(6756).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: null }, () => { if (closure_4) { if (closure_3) { let SELECT = closure_1_0(closure_1_2[43]).TaskPlatformScreen.SELECT; } return SELECT; } const TaskPlatformScreen = closure_1_0(closure_1_2[43]).TaskPlatformScreen; SELECT = closure_4 ? TaskPlatformScreen.CONSOLE : TaskPlatformScreen.DESKTOP; }).exhaustive(); }, items7), memo, tmp[1] ]; return items8; } ({ QuestTaskPlatform: map1, QuestsExperimentLocations: closure_14, MEMBER_LIST_SOCIAL_ENTRY_POINT_ALLOWED_TASK_TYPES: closure_15, QuestHomeSortMethods: closure_16, SORTED_QUEST_HOME_FILTER_GROUPS: closure_17, TaskFilterTypes: closure_18, RewardFilterTypes: closure_19, MOBILE_ORBS_INTRO_QUEST_ID: closure_20, ORBS_INTRO_QUEST_ID: closure_21, QuestVariants: closure_22 } = QuestsExperimentLocations); ({ HelpdeskArticles: closure_23, PlatformTypes: closure_24, ThemeTypes: closure_25, AnalyticEvents: closure_26 } = ME); let c28 = -1; let closure_36 = {}; let closure_37 = { questHomeHero: null, isQuestHomeHeroShelfEnabled: false, currentUserId: null, isRenewableEndDateSortEnabled: false }; let closure_39 = { DESC: 0, [0]: "DESC", ASC: 1, [1]: "ASC" }; let obj = { ALL: "all", CLAIMED: "claimed", PREVIEW_TOOL: "preview_tool" }; function useQuestTaskDetails(quest) { closure_0 = quest; const items = [quest]; let callback = React.useCallback(() => userStatus(closure_1_2[21]).getQuestTaskDetails(userStatus), items); const tmp2 = callback(React.useState(callback()), 2); closure_2 = tmp2[1]; const items1 = [callback]; const callback1 = React.useCallback(() => callback(callback()), items1); const tmp4 = useIsQuestProgressing(quest); callback = tmp4; const items2 = [quest, tmp4, callback1]; const effect = React.useEffect(() => { userStatus = userStatus.userStatus; let enrolledAt; if (userStatus != null) { enrolledAt = userStatus.enrolledAt; } if (null != enrolledAt) { const userStatus2 = tmp.userStatus; let completedAt; if (userStatus2 != null) { completedAt = userStatus2.completedAt; } if (null == completedAt) { const userStatus3 = tmp.userStatus; let claimedAt; if (userStatus3 != null) { claimedAt = userStatus3.claimedAt; } if (null == claimedAt) { if (closure_4) { const _window = window; userStatus = window.setInterval(() => { callback(); }, callback(closure_1_2[19]).Millis.SECOND); return () => { clearInterval(closure_0); closure_1_3(); }; } } } } callback1(); }, items2); return tmp2[0]; } obj = { UNACCEPTED: 0, [0]: "UNACCEPTED", ACCEPTED: 1, [1]: "ACCEPTED", IN_PROGRESS: 2, [2]: "IN_PROGRESS", COMPLETED: 3, [3]: "COMPLETED", CLAIMED: 4, [4]: "CLAIMED" }; let closure_48 = 6 * setDefault.Millis.HOUR; const MINUTE = setDefault.Millis.MINUTE; let result = require("set").fileFinishedImporting("modules/quests/hooks/QuestHooks.tsx"); export { useQuests }; export { sortQuests }; export const QuestTabs = obj; export const QuestQueryParams = { TAB: "tab", QUEST_ID: "quest_id", SORT: "sort", FILTER: "filter", AD_CREATIVE_IDS: "ad_creative_ids" }; export const useFilteredQuests = function useFilteredQuests(ALL, closure_4) { let tmp = closure_4; if (closure_4 === undefined) { tmp = closure_36; } let tmp2 = useQuests({ fetchPolicy: "cache-and-network", callerSource: "use_filtered_quests" }); let quests = tmp2.quests; ({ excludedQuests, isFetchingCurrentQuests, hasFetched } = tmp2); const map = new Map(quests.map((id) => { const items = [id.id, id]; return items; })); let tmp4 = (function useCompletedAndClaimedQuests(quests) { closure_0 = quests; const items = [quests]; const memo = React.useMemo(() => quests.filter((userStatus) => { userStatus = userStatus.userStatus; let completedAt; if (userStatus != null) { completedAt = userStatus.completedAt; } let tmp2 = null != completedAt; const userStatus2 = userStatus.userStatus; if (userStatus2 != null) { const claimedAt = userStatus2.claimedAt; } if (tmp2) { tmp2 = null != claimedAt; } return tmp2; }), items); closure_2 = React.useRef([]); const items1 = [memo]; return React.useMemo(() => { if (0 === memo.length) { return []; } else { if (ref.current.length > 0) { if (tmp.current.length === arr.length) { return tmp.current; } } const sorted = arr.sort((userStatus, userStatus2) => { userStatus = userStatus.userStatus; let claimedAt; if (userStatus != null) { claimedAt = userStatus.claimedAt; } userStatus2 = userStatus2.userStatus; let claimedAt1; if (userStatus2 != null) { claimedAt1 = userStatus2.claimedAt; } if (null == claimedAt !== (null == claimedAt1)) { let num2 = 1; if (tmp2) { num2 = closure_28; } let result = num2; } else { const rewardsExpireAt = userStatus.config.rewardsConfig.rewardsExpireAt; let num = 1; if (constants.DESC === constants.DESC) { num = closure_28; } result = rewardsExpireAt.localeCompare(userStatus2.config.rewardsConfig.rewardsExpireAt) * num; } return result; }); const mapped = sorted.map((id) => id.id); ref.current = mapped; return mapped; } }, items1); })(quests); if (ALL === obj.ALL) { tmp4 = tmp3; } quests = []; tmp3 = useAllQuests(quests, tmp); while (tmp5 !== undefined) { let value = map.get(tmp6); let tmp8 = value; let removeExpiredQuests = null != value; if (removeExpiredQuests) { let tmp9 = obj; removeExpiredQuests = ALL === obj.ALL; } if (removeExpiredQuests) { removeExpiredQuests = tmp.removeExpiredQuests; } if (removeExpiredQuests) { let tmp10 = isQuestHiddenFromQuestHome; let tmp11 = value; removeExpiredQuests = isQuestHiddenFromQuestHome(tmp8); } let tmp12 = removeExpiredQuests; let tmp13 = value; let tmp14 = null == tmp8 || removeExpiredQuests; if (!tmp14) { let tmp15 = value; let arr = quests.push(tmp8); } continue; } return { quests, excludedQuests, isFetchingCurrentQuests, hasFetched }; }; export const useClaimedQuests = function useClaimedQuests() { const _require = React.useRef(false); const items = [closure_12]; let claimedQuests = _require(589).useStateFromStoresArray(items, () => { const claimedQuests = closure_12.claimedQuests; return Array.from(claimedQuests.values()); }); obj = _require(589); const items1 = [closure_12]; const isFetchingClaimedQuests = _require(589).useStateFromStores(items1, () => closure_12.isFetchingClaimedQuests); const items2 = [isFetchingClaimedQuests]; const effect = React.useEffect(() => { let current = isFetchingClaimedQuests; if (!isFetchingClaimedQuests) { current = ref.current; } if (!current) { ref.current = true; const claimedQuests = ref(closure_1_2[15]).fetchClaimedQuests(); obj = ref(closure_1_2[15]); } }, items2); return { claimedQuests, isFetchingClaimedQuests }; }; export const useExpiredQuestsMap = function useExpiredQuestsMap() { const items = [closure_12]; return initialize.useStateFromStores(items, () => expiredQuestsMap.getExpiredQuestsMap()); }; export const useShouldShowBonusOrbsUX = function useShouldShowBonusOrbsUX(quest, questOrbMultiplierEligibility) { const _require = quest; const items = [closure_12]; const items1 = [quest]; const stateFromStores = _require(589).useStateFromStores(items, () => { let isQuestExpiredResult = null != c0; if (isQuestExpiredResult) { isQuestExpiredResult = closure_1_12.isQuestExpired(tmp.id); } return isQuestExpiredResult; }, items1); obj = _require(589); const result = _require(10530).hasVirtualCurrencyReward(quest.config); const obj2 = _require(10530); const result1 = _require(10530).hasPremiumOrbQuantity(quest.config); let tmp4 = !stateFromStores; if (!stateFromStores) { tmp4 = result; } if (tmp4) { tmp4 = result1; } if (tmp4) { tmp4 = questOrbMultiplierEligibility !== _require(10533).QuestOrbMultiplierEligibilityType.INELIGIBLE; } return tmp4; }; export const useQuestOrbRewardMultiplier = function useQuestOrbRewardMultiplier(questId) { const _require = questId; const items = [closure_12]; const items1 = [questId]; return _require(589).useStateFromStores(items, () => { const quest = closure_1_12.getQuest(questId); let questOrbMultiplier = null; if (null != quest) { questOrbMultiplier = questId(closure_1_2[23]).getQuestOrbMultiplier(quest.config); obj = questId(closure_1_2[23]); } return questOrbMultiplier; }, items1); }; export const useIsQuestExpired = function useIsQuestExpired(deliveredQuest) { const _require = deliveredQuest; const items = [closure_12]; const items1 = [deliveredQuest]; return _require(589).useStateFromStores(items, () => { let isQuestExpiredResult = null != c0; if (isQuestExpiredResult) { isQuestExpiredResult = closure_1_12.isQuestExpired(tmp.id); } return isQuestExpiredResult; }, items1); }; export const useIsQuestAccessSuspended = function useIsQuestAccessSuspended() { const items = [closure_12]; return initialize.useStateFromStores(items, () => obj.isQuestAccessSuspended, []); }; export const useIsQuestEligibleForMembersListPopout = function useIsQuestEligibleForMembersListPopout(userStatus) { const _require = userStatus; closure_1 = arg1; const items = [closure_7]; const stateFromStores = _require(589).useStateFromStores(items, () => { let channelId; if (channelId != null) { channelId = channelId.channelId; } let channel = closure_1_7.getChannel(channelId); if (channel == null) { channel = null; } return channel; }); obj = _require(589); const tmp = _require; const items1 = [closure_12]; const stateFromStores1 = _require(589).useStateFromStores(items1, () => null != obj.questEnrollmentBlockedUntil, []); const obj2 = _require(589); const items2 = [closure_9]; const stateFromStores2 = _require(589).useStateFromStores(items2, () => { currentUser = currentUser.getCurrentUser(); let id; if (currentUser != null) { id = currentUser.id; } return id; }); const obj3 = _require(589); const items3 = [closure_12]; const items4 = [userStatus]; if (null != userStatus) { if (!stateFromStores1) { if (!obj4.useStateFromStores(items3, () => { let isQuestExpiredResult = null != closure_0; if (isQuestExpiredResult) { isQuestExpiredResult = closure_1_12.isQuestExpired(tmp.id); } return isQuestExpiredResult; }, items4)) { if (stateFromStores2 !== arg2) { userStatus = userStatus.userStatus; let claimedAt; if (userStatus != null) { claimedAt = userStatus.claimedAt; } let tmp8 = null != claimedAt; if (tmp8) { tmp8 = !tmpResult.isStreamingAndCanWatch(arg1, stateFromStores); } return !tmp8; } } } } return false; }; export const useQuestFormattedDate = function useQuestFormattedDate(rewardsExpireAt, arg1) { const _require = rewardsExpireAt; obj = arg1; if (arg1 === undefined) { obj = { dateStyle: "short" }; } let stateFromStores; const items = [closure_6]; stateFromStores = _require(stateFromStores[13]).useStateFromStores(items, () => locale.locale); const items1 = [rewardsExpireAt, obj, stateFromStores]; return React.useMemo(() => { let str = ""; if (null != closure_0) { const _Date = Date; const date = new Date(tmp); str = date.toLocaleDateString(stateFromStores, obj); } return str; }, items1); }; export const useOnOpenGameClick = function useOnOpenGameClick(quest) { quest = quest.quest; const content = quest.content; const ctaContent = quest.ctaContent; const sourceQuestContent = quest.sourceQuestContent; let getQuestImpressionId; getQuestImpressionId = quest(ctaContent[28]).useGetQuestImpressionId(); const items = [quest, content, ctaContent, getQuestImpressionId, sourceQuestContent]; return React.useCallback(() => { if (quest.id !== closure_1_21) { obj = { content: null, ctaContent: null, impressionId: null, sourceQuestContent: null }; obj[0] = content; obj[1] = ctaContent; obj[2] = getQuestImpressionId(); obj[3] = sourceQuestContent; quest(ctaContent[30]).openGameLinkDirectly(tmp, obj); const obj2 = quest(ctaContent[30]); } else { const _window = window; obj = content(ctaContent[29]); window.open(obj.getArticleURL(closure_1_23.VIRTUAL_CURRENCY_LEARN_MORE)); } }, items); }; export const useIsQuestProgressingOnDesktop = function useIsQuestProgressingOnDesktop(arg0) { const _require = arg0; const items = [closure_12]; return _require(589).useStateFromStores(items, () => closure_1_12.isProgressingOnDesktop(quest.id)); }; export const useIsQuestProgressingOnConsole = function useIsQuestProgressingOnConsole(arg0) { closure_0 = arg0; const items = [arg0]; return React.useMemo(() => quest(first[21]).isQuestProgressingOnConsole(quest), items); }; export const useIsQuestProgressingVideoQuest = function useIsQuestProgressingVideoQuest(arg0) { const _require = arg0; const items = [closure_12]; const items1 = [arg0, _require(589).useStateFromStores(items, () => closure_1_12.getOptimisticProgress(quest.id, quest(closure_1_2[31]).FirstPartyQuestTaskTypes.WATCH_VIDEO))]; return React.useMemo(() => quest(closure_1_2[32]).isVideoQuestProgressing(quest), items1); }; export { useIsQuestProgressing }; export { useQuestTaskDetails }; export const useThirdPartyTaskDetails = function useThirdPartyTaskDetails(quest) { closure_0 = quest; const items = [quest]; return React.useMemo(() => userStatus(closure_1_2[21]).getThirdPartyTaskDetails(userStatus), items); }; export const useConnectedConsoleLinkOnClick = function useConnectedConsoleLinkOnClick(quest) { quest = quest.quest; accounts = quest; ({ questContent: importDefault, sourceQuestContent: dependencyMap } = quest); c3 = undefined; closure_4 = undefined; accounts = undefined; const items = [closure_8]; const stateFromStoresObject = accounts(589).useStateFromStoresObject(items, () => ({ fetching: closure_8.isFetching(), accounts: closure_8.getAccounts() })); ({ fetching, accounts } = stateFromStoresObject); const items1 = [accounts]; const memo = React.useMemo(() => { const found = accounts.filter((revoked) => false === revoked.revoked); const found1 = found.filter((type) => type.type === constants.XBOX); const found2 = found.filter((type) => type.type === constants.PLAYSTATION); return { xboxAccounts: found1, playstationAccounts: found2, xboxAndPlaystationAccounts: found1.concat(found2) }; }, items1); ({ xboxAccounts, playstationAccounts } = memo); obj = accounts(589); const tmp = accounts; const tmp5 = useIsQuestProgressing(quest); let isConsoleQuestResult = accounts(7514).isConsoleQuest(quest); if (isConsoleQuestResult) { isConsoleQuestResult = 0 === memo.xboxAndPlaystationAccounts.length; } if (isConsoleQuestResult) { isConsoleQuestResult = !tmp5; } c3 = isConsoleQuestResult; let obj2 = accounts(7514); closure_4 = tmp(10726).useGetQuestImpressionId(); return () => { obj = accounts(closure_1_2[30]); if (c3) { obj = { quest: null }; obj[0] = accounts; obj = { content: null, ctaContent: null, impressionId: null, sourceQuestContent: null }; obj[0] = closure_1; obj[1] = accounts(closure_1_2[33]).QuestContentCTA.CONNECT_CONSOLE_LINK; obj[2] = callback(); obj[3] = closure_2; const result = obj.openAddConsoleConnectionModal(obj, obj); } else { obj1 = { quest: null }; obj1[0] = accounts; const obj2 = { content: null, ctaContent: null, impressionId: null, sourceQuestContent: null }; obj2[0] = closure_1; obj2[1] = accounts(closure_1_2[33]).QuestContentCTA.VIEW_CONSOLE_CONNECTIONS_LINK; obj2[2] = callback(); obj2[3] = closure_2; const result1 = obj.openConsoleConnectionSettings(obj1, obj2); } }; }; export const useGetOrFetchApplicationForConsoleQuests = function useGetOrFetchApplicationForConsoleQuests(arg0) { closure_0 = arg0; const items = [arg0]; const memo = React.useMemo(() => { const set = new Set(); while (tmp2 !== undefined) { let tmp4 = memo1; let tmp5 = closure_1_2; let obj2 = memo1(closure_1_2[21]); let consoleApplicationId = obj2.getConsoleApplicationId(tmp3); if (null != consoleApplicationId) { let tmp8 = consoleApplicationId; let addResult = set.add(tmp7); } continue; } return Array.from(set); }, items); return useGetOrFetchApplicationsDefault(memo); }; export const useQuestForMemberListSocialEntryPoint = function useQuestForMemberListSocialEntryPoint(arg0) { let memo1 = arg0; const items = [closure_12]; const stateFromStores = memo1(589).useStateFromStores(items, () => quests.quests); const arr = Array.from(stateFromStores.values()); memo1 = arr; const items1 = [arr]; const memo = React.useMemo(() => { const set = new Set(); while (tmp2 !== undefined) { let tmp4 = memo1; let tmp5 = closure_1_2; let obj2 = memo1(closure_1_2[21]); let consoleApplicationId = obj2.getConsoleApplicationId(tmp3); if (null != consoleApplicationId) { let tmp8 = consoleApplicationId; let addResult = set.add(tmp7); } continue; } return Array.from(set); }, items1); const items2 = [arg0, stateFromStores, stateFromStores(7183)(memo)]; memo1 = React.useMemo(() => { const result = memo1(closure_1_2[20]).filterQuestsForSocialEntrypoints(stateFromStores, closure_1_15); obj = memo1(closure_1_2[20]); return memo1(closure_1_2[35]).getQuestsFromActivities(result, memo1); }, items2); obj = memo1(589); const items3 = [closure_12]; const items4 = [memo1]; let tmp4 = null; if (!obj3.useStateFromStores(items3, () => { let isQuestExpiredResult = null != c0; if (isQuestExpiredResult) { isQuestExpiredResult = closure_1_12.isQuestExpired(tmp.id); } return isQuestExpiredResult; }, items4)) { tmp4 = memo1; } return tmp4; }; export const useQuestCollectibles = function useQuestCollectibles(config) { const hasQuestCollectibles = _getDefaultRewardName.hasCollectiblesQuestReward(config); obj = _getDefaultRewardName; const defaultReward = getContextualEntrypointHeading.getDefaultReward(config); const obj2 = getContextualEntrypointHeading; const isFetching = useFetchCollectiblesProduct.useFetchCollectiblesProduct(defaultReward.skuId); const product = isFetching.product; let avatarDecoration; if (product != null) { const items = product.items; if (items != null) { avatarDecoration = items[0]; } } return { hasQuestCollectibles, avatarDecoration, isFetching: isFetching.isFetching }; }; export const useQuestPreviewActions = function useQuestPreviewActions(id) { closure_0 = id; let items = [id]; return React.useMemo(() => ({ handleComplete() { return closure_1_0(closure_1_2[15]).completeQuestPreview(closure_0); }, handleProgress(random) { return closure_1_0(closure_1_2[15]).completeQuestPreview(closure_0, random); }, handleResetStatusClick() { return closure_1_0(closure_1_2[15]).resetQuestPreviewStatus(closure_0); }, handleResetDismissibilityClick() { return closure_1_0(closure_1_2[15]).resetQuestDismissibilityStatus(closure_0); }, handleOverridePreviewClick(placement) { return closure_1_0(closure_1_2[15]).overrideQuestForPlacement(placement, closure_0); }, handleResetHasBeenSeenClick(ContextMenu, arg1) { const items = [closure_0]; return closure_1_0(closure_1_2[15]).markAdContentUnseen(closure_1_0(closure_1_2[38]).AdCreativeType.QUEST, items); } }), items); }; export const useConnectedAccounts = function useConnectedAccounts() { obj = accounts(589); const items = [closure_8]; const stateFromStoresObject = obj.useStateFromStoresObject(items, () => ({ fetching: closure_8.isFetching(), accounts: closure_8.getAccounts() })); accounts = stateFromStoresObject.accounts; const items1 = [accounts]; const memo = React.useMemo(() => { const found = accounts.filter((revoked) => false === revoked.revoked); const found1 = found.filter((type) => type.type === constants.XBOX); const found2 = found.filter((type) => type.type === constants.PLAYSTATION); return { xboxAccounts: found1, playstationAccounts: found2, xboxAndPlaystationAccounts: found1.concat(found2) }; }, items1); obj = { fetching: stateFromStoresObject.fetching, xboxAccounts: memo.xboxAccounts, playstationAccounts: memo.playstationAccounts, xboxAndPlaystationAccounts: memo.xboxAndPlaystationAccounts }; return obj; }; export const useManuallyStartConsoleQuest = function useManuallyStartConsoleQuest(questId) { questId = questId.questId; const preview = questId.preview; const beforeRequest = questId.beforeRequest; const afterRequest = questId.afterRequest; let first; let React; closure_6 = undefined; let callback; const tmp = first(React.useState(false), 2); first = tmp[0]; React = tmp[1]; obj = questId(beforeRequest[13]); const items = [closure_8]; const stateFromStores = obj.useStateFromStores(items, () => accounts.getAccounts()); const tmp4 = useConsoleQuestUIStore((clearErrorHintsByType) => clearErrorHintsByType.clearErrorHintsByType); closure_6 = tmp4; const items1 = [questId]; callback = React.useCallback((arg0) => { const state = closure_1_11.getState(); return state.setErrorHints(questId, arg0); }, items1); const items2 = [stateFromStores, tmp4, questId]; const effect = React.useEffect(() => { callback(questId, questId(beforeRequest[39]).QuestConsoleStartError.EXPIRED_CREDENTIAL); }, items2); obj = { startConsoleQuest: React.useCallback(afterRequest(function*() { if (v02 === 2) { v02 = 3; HermesBuiltin.throwTypeError(); } else if (tmp6 === 3) { if (arg0 === 1) { throw arg1; } else if (arg0 === 2) { obj = { value: null, done: true }; obj[0] = arg1; return obj; } else { return { value: "HermesInternal", done: null }; } } else { try { v02 = 2; if (0 === c4) { if (arg0 === 1) { v02 = 3; throw arg1; } else if (arg0 === 2) { v02 = 3; obj = { value: null, done: true }; obj[0] = arg1; return obj; } else { closure_1 = tmp3; let errorHints = tmp7; errorHints = undefined; if (c4) { v02 = 3; } else { if (closure_1_2 != null) { closure_1_2(); } v02(true); errorHints = null; let v0 = 1; obj1 = closure_1_0(closure_1_2[15]); c4 = 2; v02 = 1; obj1 = { value: null, done: false }; obj1[0] = obj1.manuallyStartConsoleQuest(closure_1_0, closure_1_1); return obj1; } } } else if (1 === tmp7) { v0 = 0; v02(false); if (v0 != null) { v0(); } throw closure_2; } else if (arg0 === 1) { v02 = 3; throw arg1; } else if (arg0 !== 2) { errorHints = arg1; callback(errorHints.errorHints); v0 = 0; v02(false); if (v0 != null) { v0(); } } v0 = 0; v02(false); if (v0 != null) { v0(); } v02 = 3; obj = { value: null, done: true }; obj[0] = arg1; return obj; } catch (tmp33) { closure_2 = tmp33; if (tmp4 === v0) { v02 = tmp2; throw tmp33; } else { c4 = tmp; } } } }), items3), startingConsoleQuest: first }; items3 = [first, beforeRequest, afterRequest, preview, questId, callback]; return obj; }; export const useWaitingForConsoleConnection = function useWaitingForConsoleConnection(quest) { quest = quest.quest; accounts = undefined; const items = [closure_8]; const stateFromStoresObject = accounts(589).useStateFromStoresObject(items, () => ({ fetching: closure_8.isFetching(), accounts: closure_8.getAccounts() })); ({ fetching, accounts } = stateFromStoresObject); const items1 = [accounts]; const memo = React.useMemo(() => { const found = accounts.filter((revoked) => false === revoked.revoked); const found1 = found.filter((type) => type.type === constants.XBOX); const found2 = found.filter((type) => type.type === constants.PLAYSTATION); return { xboxAccounts: found1, playstationAccounts: found2, xboxAndPlaystationAccounts: found1.concat(found2) }; }, items1); ({ xboxAccounts, playstationAccounts } = memo); obj = accounts(589); const tmp3 = useIsQuestProgressing(quest); let isConsoleQuestResult = accounts(7514).isConsoleQuest(quest); if (isConsoleQuestResult) { isConsoleQuestResult = 0 === memo.xboxAndPlaystationAccounts.length; } if (isConsoleQuestResult) { isConsoleQuestResult = !tmp3; } return isConsoleQuestResult; }; export const useQuestHowToHelpArticle = function useQuestHowToHelpArticle() { obj = accounts(589); const items = [closure_8]; const stateFromStoresObject = obj.useStateFromStoresObject(items, () => ({ fetching: closure_8.isFetching(), accounts: closure_8.getAccounts() })); ({ fetching, accounts } = stateFromStoresObject); const items1 = [accounts]; const memo = React.useMemo(() => { const found = accounts.filter((revoked) => false === revoked.revoked); const found1 = found.filter((type) => type.type === constants.XBOX); const found2 = found.filter((type) => type.type === constants.PLAYSTATION); return { xboxAccounts: found1, playstationAccounts: found2, xboxAndPlaystationAccounts: found1.concat(found2) }; }, items1); const articleURL = combinedDefault.getArticleURL(constants6.QUEST_HOW_TO_PLAYSTATION); const obj2 = combinedDefault; const articleURL1 = combinedDefault.getArticleURL(constants6.QUEST_HOW_TO_XBOX); const intl = accounts(1236).intl; const formatResult = intl.format(accounts(1236).t.beN4DG, { psHelpdeskArticle: articleURL, xboxHelpdeskArticle: articleURL1 }); const intl2 = accounts(1236).intl; let tmp8 = articleURL1; if (memo.playstationAccounts.length > 0) { tmp8 = articleURL; } const obj3 = combinedDefault; if (memo.xboxAccounts.length <= 0) { let tmp10 = formatResult; if (!tmp3) { tmp10 = formatResult; } obj = { message: null, xboxURL: null, playstationURL: null }; obj[0] = tmp10; obj[1] = articleURL1; obj[2] = articleURL; return obj; } tmp10 = intl2.format(accounts(1236).t.HVS7nh, { helpdeskArticle: tmp8 }); }; export const QuestProgressState = obj; export const useProgressState = function useProgressState(quest) { const userStatus = quest.userStatus; let enrolledAt; if (userStatus != null) { enrolledAt = userStatus.enrolledAt; } const userStatus2 = quest.userStatus; let completedAt; if (userStatus2 != null) { completedAt = userStatus2.completedAt; } const userStatus3 = quest.userStatus; let claimedAt; if (userStatus3 != null) { claimedAt = userStatus3.claimedAt; } if (typeof useQuestTaskDetails !== "function") { HermesBuiltin.throwTypeError(); } closure_0 = quest; const items = [quest]; let callback = React.useCallback(() => userStatus(closure_1_2[21]).getQuestTaskDetails(userStatus), items); closure_2 = callback(React.useState(callback()), 2)[1]; const items1 = [callback]; const callback1 = React.useCallback(() => callback(callback()), items1); const tmp10 = useIsQuestProgressing(quest); callback = tmp10; const items2 = [quest, tmp10, callback1]; const effect = React.useEffect(() => { userStatus = userStatus.userStatus; let enrolledAt; if (userStatus != null) { enrolledAt = userStatus.enrolledAt; } if (null != enrolledAt) { const userStatus2 = tmp.userStatus; let completedAt; if (userStatus2 != null) { completedAt = userStatus2.completedAt; } if (null == completedAt) { const userStatus3 = tmp.userStatus; let claimedAt; if (userStatus3 != null) { claimedAt = userStatus3.claimedAt; } if (null == claimedAt) { if (closure_4) { const _window = window; userStatus = window.setInterval(() => { callback(); }, callback(closure_1_2[19]).Millis.SECOND); return () => { clearInterval(closure_0); closure_1_3(); }; } } } } callback1(); }, items2); if (tmp6) { let IN_PROGRESS = obj.CLAIMED; } else if (tmp4) { IN_PROGRESS = obj.COMPLETED; } else { if (tmp12) { if (tmp2) { IN_PROGRESS = obj.IN_PROGRESS; } } IN_PROGRESS = tmp2 ? tmp13.ACCEPTED : tmp13.UNACCEPTED; } return IN_PROGRESS; }; export const useQuestCompletionDetails = function useQuestCompletionDetails(quest) { let flag = arg1; if (arg1 === undefined) { flag = false; } obj = _require(589); const items = [closure_6]; const stateFromStores = obj.useStateFromStores(items, () => locale.locale); if (typeof useQuestTaskDetails !== "function") { HermesBuiltin.throwTypeError(); } _require = quest; const items1 = [quest]; let callback = React.useCallback(() => userStatus(closure_1_2[21]).getQuestTaskDetails(userStatus), items1); const tmp5 = callback(React.useState(callback()), 2); dependencyMap = tmp5[1]; const items2 = [callback]; const callback1 = React.useCallback(() => callback(callback()), items2); const tmp7 = useIsQuestProgressing(quest); callback = tmp7; const items3 = [quest, tmp7, callback1]; const effect = React.useEffect(() => { userStatus = userStatus.userStatus; let enrolledAt; if (userStatus != null) { enrolledAt = userStatus.enrolledAt; } if (null != enrolledAt) { const userStatus2 = tmp.userStatus; let completedAt; if (userStatus2 != null) { completedAt = userStatus2.completedAt; } if (null == completedAt) { const userStatus3 = tmp.userStatus; let claimedAt; if (userStatus3 != null) { claimedAt = userStatus3.claimedAt; } if (null == claimedAt) { if (closure_4) { const _window = window; userStatus = window.setInterval(() => { callback(); }, callback(closure_1_2[19]).Millis.SECOND); return () => { clearInterval(closure_0); closure_1_3(); }; } } } } callback1(); }, items3); let percentComplete = tmp5[0].percentComplete; _require = quest; const items4 = [quest]; const memo = React.useMemo(() => userStatus(closure_1_2[21]).getThirdPartyTaskDetails(userStatus), items4); if (null != memo) { percentComplete = memo.percentComplete; } obj = { completedRatio: percentComplete, percentComplete: 100 * percentComplete, completedRatioDisplay: null }; if (null != memo) { if (!flag) { let progress; if (memo != null) { progress = memo.progress; } let target; if (memo != null) { target = memo.target; } const _HermesInternal = HermesInternal; let combined = "" + progress + "/" + target; } obj[2] = combined; return obj; } combined = _require(1898).formatPercent(stateFromStores, percentComplete, { roundingMode: "floor" }); }; export const useSelectedTaskPlatform = function useSelectedTaskPlatform(arg0) { const _require = arg0; const items = [closure_12]; const items1 = [_require(589).useStateFromStores(items, () => closure_1_12.selectedTaskPlatform(closure_0)), ]; const items2 = [arg0]; items1[1] = React.useCallback((platform) => quest(first[15]).selectTaskPlatform(quest, platform), items2); return items1; }; export { useTaskPlatformScreen }; export const useQuestWarningTips = function useQuestWarningTips(userStatus) { let _require = userStatus; const items = [userStatus]; const memo = React.useMemo(() => userStatus(closure_1_2[21]).getThirdPartyTaskDetails(userStatus), items); if (typeof useQuestTaskDetails !== "function") { HermesBuiltin.throwTypeError(); } _require = userStatus; const items1 = [userStatus]; let callback = obj.useCallback(() => userStatus(closure_1_2[21]).getQuestTaskDetails(userStatus), items1); [tmp4, dependencyMap] = callback(React.useState(callback()), 2); const items2 = [callback]; const callback1 = obj.useCallback(() => callback(callback()), items2); const tmp6 = useIsQuestProgressing(userStatus); callback = tmp6; const items3 = [userStatus, tmp6, callback1]; const effect = obj.useEffect(() => { userStatus = userStatus.userStatus; let enrolledAt; if (userStatus != null) { enrolledAt = userStatus.enrolledAt; } if (null != enrolledAt) { const userStatus2 = tmp.userStatus; let completedAt; if (userStatus2 != null) { completedAt = userStatus2.completedAt; } if (null == completedAt) { const userStatus3 = tmp.userStatus; let claimedAt; if (userStatus3 != null) { claimedAt = userStatus3.claimedAt; } if (null == claimedAt) { if (closure_4) { const _window = window; userStatus = window.setInterval(() => { callback(); }, callback(closure_1_2[19]).Millis.SECOND); return () => { clearInterval(closure_0); closure_1_3(); }; } } } } callback1(); }, items3); _require = userStatus; const tmp3 = callback(React.useState(callback()), 2); const items4 = [closure_12]; const items5 = [userStatus]; userStatus = userStatus.userStatus; let enrolledAt; const stateFromStores = _require(589).useStateFromStores(items4, () => { let isQuestExpiredResult = null != c0; if (isQuestExpiredResult) { isQuestExpiredResult = closure_1_12.isQuestExpired(tmp.id); } return isQuestExpiredResult; }, items5); if (userStatus != null) { enrolledAt = userStatus.enrolledAt; } let tmp12 = null != enrolledAt; let userStatus2 = userStatus.userStatus; let completedAt; if (userStatus2 != null) { completedAt = userStatus2.completedAt; } const DESKTOP = tmp8(6760).FirstPartyQuestTaskTypesSets.DESKTOP; let hasItem = DESKTOP.has(tmp4.taskType); if (hasItem) { hasItem = tmp4.percentComplete > 0; } if (tmp12) { tmp12 = !tmp14; } if (tmp12) { tmp12 = !stateFromStores; } if (tmp12) { tmp12 = null == memo; } if (tmp12) { if (!hasItem) { hasItem = 0 === tmp4.percentComplete && callback(useTaskPlatformScreen(userStatus, tmp4), 1)[0] === tmp8(6756).TaskPlatformScreen.DESKTOP; const tmp16 = 0 === tmp4.percentComplete && callback(useTaskPlatformScreen(userStatus, tmp4), 1)[0] === tmp8(6756).TaskPlatformScreen.DESKTOP; } tmp12 = hasItem; } let tmp8Result = tmp8(500); let tmp17 = tmp8Result.isWeb() && tmp12; if (tmp17) { tmp8Result = tmp8(10728); tmp17 = !tmp8Result.isQuestSupportedOnWeb(userStatus); } const obj2 = _require(589); tmp14 = null != completedAt; let isMacResult = _require(500).isMac(); if (isMacResult) { isMacResult = tmp4.taskType === tmp8(6760).FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP; } if (isMacResult) { isMacResult = tmp12; } const items6 = []; if (isMacResult) { const intl = tmp8(1236).intl; items6.push(intl.string(tmp8(1236).t.MFGxFM)); } if (tmp17) { const intl2 = tmp8(1236).intl; items6.push(intl2.string(tmp8(1236).t.BV6xDm)); } return items6; }; export const useQuest = function useQuest(arg0) { const items = [closure_12]; const stateFromStores = initialize.useStateFromStores(items, () => quests.quests); let value = stateFromStores.get(arg0); if (value == null) { value = null; } return value; }; export const useNonNullableQuest = function useNonNullableQuest(questId, callback) { const _require = questId; closure_1 = callback; let items = [closure_12]; const items1 = [questId]; stateFromStores = _require(stateFromStores[13]).useStateFromStores(items, () => closure_1_12.getQuest(closure_0), items1); if (stateFromStores == null) { stateFromStores = null; } const items2 = [stateFromStores, questId, callback]; const effect = React.useEffect(() => { if (null == stateFromStores) { const quests = closure_1_12.quests; const items = []; HermesBuiltin.arraySpread(quests.keys(), 0); obj = questId(stateFromStores[18]); const _Error = Error; const _HermesInternal = HermesInternal; error = new Error("Quest unexpectedly missing from store: " + questId); obj = { tags: null, extra: null }; obj[0] = { source: "useNonNullableQuest" }; obj = { questId: null, storeQuestIds: null, storeSize: null, isFetchingCurrentQuests: null, lastFetchedCurrentQuests: null }; obj[0] = questId; obj[1] = items; obj[2] = items.length; ({ isFetchingCurrentQuests: obj3[3], lastFetchedCurrentQuests: obj3[4] } = closure_1_12); obj[1] = obj; const result = obj.captureQuestsException(error, obj); if (callback != null) { callback(); } } }, items2); return stateFromStores; }; export const useQuestBarOrDockModeChangeTracking = function useQuestBarOrDockModeChangeTracking(mode) { mode = mode.mode; const questContent = mode.questContent; const sourceQuestContent = mode.sourceQuestContent; const questId = mode.questId; closure_4 = undefined; closure_4 = React.useRef(null); const items = [questId, questContent, mode, sourceQuestContent]; const effect = React.useEffect(() => { let tmp2 = null != questId; if (tmp2) { tmp2 = ref.current !== mode; } if (tmp2) { obj = mode(sourceQuestContent[44]); obj = { mode: null, prevMode: null, questContent: null, questId: null, sourceQuestContent: null }; obj[0] = mode; obj[1] = ref.current; obj[2] = questContent; obj[3] = questId; obj[4] = sourceQuestContent; const result = obj.trackQuestBarOrDockModeChange(obj); ref.current = mode; } }, items); const items1 = [questId, questContent, sourceQuestContent]; const effect1 = React.useEffect(() => null != questId ? (() => { obj = closure_1_0(closure_1_2[44]); obj = { mode: null, prevMode: ref.current, questContent: closure_1, questId: closure_3, sourceQuestContent: closure_2 }; const result = obj.trackQuestBarOrDockModeChange(obj); }) : undefined, items1); }; export const useCosponsoredLogotypeAsset = function useCosponsoredLogotypeAsset(arg0, arg1) { const _require = arg0; importDefault = arg1; const items = [closure_12]; const items1 = [arg0]; stateFromStores = _require(stateFromStores[13]).useStateFromStores(items, () => closure_1_12.getQuest(closure_0), items1); const tmp2 = importDefault(stateFromStores[45])(); closure_3 = tmp2; const items2 = [tmp2, arg1, stateFromStores]; return React.useMemo(() => { if (null == stateFromStores) { return null; } else if (closure_1 != null) { return callback(stateFromStores[47]).getQuestAsset(tmp, callback(stateFromStores[47]).QuestAssetType.COSPONSOR_LOGO_TYPE, tmp11); } else { callback(stateFromStores[46]).isThemeDark(closure_3) ? closure_1_25.DARK : closure_1_25.LIGHT; obj = callback(stateFromStores[46]); } }, items2); }; export const useClaimedCollectibleRewardMessage = function useClaimedCollectibleRewardMessage(config) { obj = initialize; const items = [closure_9]; const stateFromStores = obj.useStateFromStores(items, () => currentUser.getCurrentUser()); obj1 = _getDefaultRewardName; const defaultRewardName = obj1.getDefaultRewardName(config, stateFromStores); let obj2 = _getDefaultRewardName; const collectibleQuestRewardDuration = obj2.getCollectibleQuestRewardDuration(config); let obj3 = _getDefaultRewardName; const collectibleQuestRewardExtendableExpirationDate = obj3.getCollectibleQuestRewardExtendableExpirationDate(config); let obj4 = _getDefaultRewardName; const result = obj4.isCollectibleQuestRewardPermanentWithPremiumSubscription(config); const result1 = _getDefaultRewardName.isCollectibleQuestRewardPremiumExtendable(config); const obj6 = _getDefaultRewardName; const isPremiumResult = getPremiumPlanItem.isPremium(stateFromStores, PremiumTypes.TIER_2); if (null == collectibleQuestRewardDuration) { const intl2 = tmp(1236).intl; obj = { decorationName: null }; obj[0] = defaultRewardName; return intl2.formatToPlainString(tmp(1236).t.l9uXL8, obj); } else { const intl3 = tmp(1236).intl; obj = { rewardName: null }; obj[0] = defaultRewardName; const intl4 = tmp(1236).intl; obj1 = { rewardName: null, expirationDate: null }; obj1[0] = defaultRewardName; obj1[1] = collectibleQuestRewardExtendableExpirationDate; const formatToPlainStringResult = intl3.formatToPlainString(tmp(1236).t.o97tNn, obj); const intl5 = tmp(1236).intl; obj2 = { rewardName: null, duration: null }; obj2[0] = defaultRewardName; obj2[1] = collectibleQuestRewardDuration; let formatToPlainStringResult2 = intl5.formatToPlainString(tmp(1236).t.ie4YK0, obj2); const intl6 = tmp(1236).intl; obj3 = { duration: null, rewardName: null }; obj3[0] = collectibleQuestRewardDuration; obj3[1] = defaultRewardName; let formatToPlainStringResult3 = intl6.formatToPlainString(tmp(1236).t.yCpc0U, obj3); if (result1) { if (result) { if (isPremiumResult) { formatToPlainStringResult2 = formatToPlainStringResult; } formatToPlainStringResult3 = formatToPlainStringResult2; } else if (isPremiumResult) { formatToPlainStringResult3 = formatToPlainStringResult1; } } else { const intl = tmp(1236).intl; obj4 = { duration: null, decorationName: null }; obj4[0] = collectibleQuestRewardDuration; obj4[1] = defaultRewardName; return intl.formatToPlainString(tmp(1236).t.tTlItm, obj4); } formatToPlainStringResult1 = intl4.formatToPlainString(tmp(1236).t.PkyRZo, obj1); } }; export const useLaunchInGameActivityQuest = function useLaunchInGameActivityQuest(quest) { obj = getApplicationIdsByTaskTypes; obj = { launchInGameActivity: null }; const activityApplicationId = obj.getActivityApplicationId(quest); obj[0] = useRefocusOrLaunchActivityDefault({ applicationId: activityApplicationId }); return obj; }; export const useIsPreviewerOnAnyQuest = function useIsPreviewerOnAnyQuest() { const items = [closure_12]; const stateFromStoresArray = initialize.useStateFromStoresArray(items, () => { quests = quests.quests; const items = [...quests.values()]; return items; }); return stateFromStoresArray.some((preview) => preview.preview); }; export const useShouldShowPreviewToolTab = function useShouldShowPreviewToolTab() { let items = [closure_12]; const stateFromStoresArray = initialize.useStateFromStoresArray(items, () => { quests = quests.quests; const items = [...quests.values()]; return items; }); return stateFromStoresArray.some((preview) => preview.preview); }; export const useShouldShowQuestsActivityPanelItem = function useShouldShowQuestsActivityPanelItem(userStatus) { userStatus = undefined; if (userStatus != null) { userStatus = userStatus.userStatus; } let isDismissedResult = null != userStatus; if (isDismissedResult) { isDismissedResult = _require(7489).isDismissed(userStatus.userStatus, _require(6756).QuestContent.ACTIVITY_PANEL); obj = _require(7489); } let tmp5 = userStatus; if (userStatus == null) { tmp5 = null; } _require = tmp5; const items = [closure_12]; const items1 = [tmp5]; let claimedAt; const stateFromStores = _require(589).useStateFromStores(items, () => { let isQuestExpiredResult = null != c0; if (isQuestExpiredResult) { isQuestExpiredResult = closure_1_12.isQuestExpired(tmp.id); } return isQuestExpiredResult; }, items1); if (userStatus != null) { userStatus = userStatus.userStatus; if (userStatus != null) { claimedAt = userStatus.claimedAt; } } const obj2 = _require(589); const tmp11 = null != claimedAt; const tmp6 = _require; const tmp8 = closure_12; const items2 = [tmp8]; const stateFromStores1 = _require(589).useStateFromStores(items2, () => null != obj.questEnrollmentBlockedUntil, []); if (!isDismissedResult) { isDismissedResult = stateFromStores; } if (!isDismissedResult) { isDismissedResult = tmp11; } if (!isDismissedResult) { isDismissedResult = stateFromStores1; } return !isDismissedResult; }; export const useQuestsWithPreviewAccess = function useQuestsWithPreviewAccess() { let items = [closure_12]; stateFromStoresArray = stateFromStoresArray(589).useStateFromStoresArray(items, () => { quests = quests.quests; const items = [...quests.values()]; return items; }); const items1 = [stateFromStoresArray]; return React.useMemo(() => stateFromStoresArray.filter((preview) => preview.preview), items1); }; export const useQuestHomeFilterOptions = function useQuestHomeFilterOptions() { closure_0 = closure_17; const items = [closure_17]; return React.useMemo(() => closure_0.map((arg0) => { [tmp, tmp2] = arg0; obj = { heading: callback(table[36]).getFilterGroupHeadingText(tmp), options: tmp2 }; return obj; }), items); }; export const useQuestHomeSortOptions = function useQuestHomeSortOptions() { return React.useMemo(() => { const keys = Object.keys(closure_16); return keys.map((arg0) => { obj = { label: callback(table[36]).getSortMethodText(dependencyMap[arg0]), value: dependencyMap[arg0] }; return obj; }); }, []); }; export const useQuestHomeSortingFilteringAnalytics = function useQuestHomeSortingFilteringAnalytics(selectedSortMethod) { selectedSortMethod = selectedSortMethod.selectedSortMethod; const selectedFilters = selectedSortMethod.selectedFilters; const numQuestsVisible = selectedSortMethod.numQuestsVisible; closure_3 = React.useRef(null); closure_4 = React.useRef(null); const items = [selectedSortMethod]; const effect = React.useEffect(() => { obj = selectedFilters(numQuestsVisible[50]); obj = { sort_method: selectedSortMethod, previous_sort_method: ref.current }; obj.track(closure_1_26.QUEST_HOME_SORT_METHOD_CHANGED, obj); ref.current = selectedSortMethod; }, items); const items1 = [selectedFilters, numQuestsVisible]; const effect1 = React.useEffect(() => { const mapped = selectedFilters.map((arg0) => arg0.filter); obj = selectedFilters(numQuestsVisible[50]); obj = { filters: mapped, previous_filters: null, num_quests_visible: null }; let current = ref2.current; if (current == null) { current = []; } obj[1] = current; obj[2] = numQuestsVisible; obj.track(closure_1_26.QUEST_HOME_FILTERS_CHANGED, obj); ref2.current = mapped; }, items1); }; export const useShouldShowQuestPreviewOverrides = function useShouldShowQuestPreviewOverrides(quest) { let preview = React.useMemo(() => { currentUser = currentUser.getCurrentUser(); let isStaffResult; if (currentUser != null) { isStaffResult = currentUser.isStaff(); } return true === isStaffResult; }, []); if (!preview) { preview = quest.preview; } return preview; }; export const useQuestHomeHeroShelf = function useQuestHomeHeroShelf(questIds) { const items = [closure_12]; stateFromStores = stateFromStores(589).useStateFromStores(items, () => quests.quests); questIds = undefined; if (questIds != null) { questIds = questIds.questIds; } const items1 = [stateFromStores, questIds]; return React.useMemo(() => { if (null == questIds) { obj = { shelfQuests: null, isShelfEnabled: false }; obj[0] = []; return obj; } else { const mapped = arr.map((arg0) => lib.get(arg0)); const found = mapped.filter(stateFromStores(closure_1_2[51]).isNotNullish); const found1 = found.filter((arg0) => !lib(table[18]).isQuestExpired(arg0)); if (found1.length <= 1) { obj = { shelfQuests: null, isShelfEnabled: false }; obj[0] = []; } else { obj = { shelfQuests: null, isShelfEnabled: true }; obj[0] = found1; } return obj; } arr = questIds; }, items1); }; export const useFetchQuestHomeBounties = function useFetchQuestHomeBounties(location) { obj = location; if (location === undefined) { obj = {}; } const previewAdCreativeIds = obj.previewAdCreativeIds; let showBounties; let enabled; closure_3 = undefined; let callback; obj1 = previewAdCreativeIds(enabled[52]); const bountiesExperience = obj1.useBountiesExperience(constants2.QUEST_HOME_MOBILE); showBounties = bountiesExperience.showBounties; const BountyStaleRefreshQuestHomeExperiment = previewAdCreativeIds(enabled[53]).BountyStaleRefreshQuestHomeExperiment; obj = { location: constants2.QUEST_HOME_MOBILE }; enabled = BountyStaleRefreshQuestHomeExperiment.useConfig(obj).enabled; const AdPlacement = previewAdCreativeIds(enabled[43]).AdPlacement; const tmp4 = bountiesExperience.verticalScrollEnabled ? AdPlacement.VIDEO_MODAL_MOBILE : AdPlacement.QUEST_HOME_MOBILE_CAROUSEL; closure_3 = tmp4; [tmp6, c4] = callback(React.useState(showBounties), 2); let tmp = previewAdCreativeIds; const tmp2 = enabled; const tmp5 = callback(React.useState(showBounties), 2); const items = [closure_10]; const stateFromStoresObject = previewAdCreativeIds(enabled[13]).useStateFromStoresObject(items, () => ({ isFetching: closure_10.isFetchingQuestHomeBounties, questHomeBounties: closure_10.questHomeBounties })); const items1 = [showBounties, enabled, previewAdCreativeIds, tmp4]; ({ isFetching, questHomeBounties } = stateFromStoresObject); const effect = React.useEffect(() => { function loadBounties() { const self = this; const apply = _loadBounties.apply; if (typeof apply === "unknown") { let applyArgumentsResult = HermesBuiltin.applyArguments(self); } else { applyArgumentsResult = apply(self, arguments); } return applyArgumentsResult; } function _loadBounties() { const self = this; const tmp = loadBounties(function*() { if (v0 === 2) { v0 = 3; HermesBuiltin.throwTypeError(); } else if (tmp6 === 3) { if (arg0 === 1) { throw arg1; } else if (arg0 === 2) { obj = { value: null, done: true }; obj[0] = arg1; return obj; } else { return { value: "HermesInternal", done: null }; } } else { try { v0 = 2; if (0 === c1) { if (arg0 === 1) { v0 = 3; throw arg1; } else if (arg0 === 2) { v0 = 3; obj = { value: null, done: true }; obj[0] = arg1; return obj; } else { closure_0 = tmp3; const _Date = Date; closure_1 = Date.now(); c3 = 1; if (null != closure_1_0) { if (arr.length > 0) { c1 = 3; v0 = 1; obj1 = { value: null, done: false }; obj1[0] = closure_2_0(closure_2_2[54]).fetchBountyPreview(arr, c3); return obj1; } } let obj2 = closure_2_0(closure_2_2[54]); c1 = 2; v0 = 1; obj2 = { value: null, done: false }; obj2[0] = obj2.fetchQuestHomeBounties(c3); return obj2; } } else if (1 === tmp7) { c3 = 0; if (!closure_0) { v0(false); } throw closure_2; } else { if (2 === tmp7) { if (arg0 === 1) { v0 = 3; throw arg1; } else if (arg0 === 2) { c3 = 0; if (!closure_1_0) { v0(false); } v0 = 3; const obj3 = { value: null, done: true }; obj3[0] = arg1; return obj3; } } else if (arg0 === 1) { v0 = 3; throw arg1; } else if (arg0 === 2) { c3 = 0; if (!closure_0) { v0(false); } v0 = 3; obj = { value: null, done: true }; obj[0] = arg1; return obj; } c3 = 0; if (!closure_1_0) { v0(false); } v0 = 3; return { value: "HermesInternal", done: null }; } } catch (tmp32) { closure_2 = tmp32; if (tmp4 === c3) { v0 = tmp2; throw tmp32; } else { c1 = tmp; } } } }); closure_4 = tmp; const apply = tmp.apply; if (typeof apply === "unknown") { let applyArgumentsResult = HermesBuiltin.applyArguments(self); } else { applyArgumentsResult = apply(self, arguments); } return applyArgumentsResult; } if (c1) { c0 = false; c1 = 0; const bounties = loadBounties(); if (interval) { const _window = window; interval = window.setInterval(() => { if (Date.now() - c1 > closure_2_48) { loadBounties(); } }, closure_1_49); return () => { c0 = true; window.clearInterval(closure_2); }; } else { return () => { c0 = true; }; } } }, items1); if (showBounties) { obj = { questHomeBounties: null, isLoading: null }; obj[0] = questHomeBounties; obj[1] = tmp6; obj1 = obj; } else { obj1 = { questHomeBounties: null, isLoading: false }; obj1[0] = []; } return obj1; }; export const useQuestHomeBounties = function useQuestHomeBounties() { const items = [closure_10]; return initialize.useStateFromStoresObject(items, () => ({ questHomeBounties: closure_10.questHomeBounties, isFetching: closure_10.isFetchingQuestHomeBounties })); }; export const useQuestBarImpressionSurvey = function useQuestBarImpressionSurvey(questCreative) { const _require = questCreative; const DropsOptedOut = _require(4069).DropsOptedOut; const setting = DropsOptedOut.useSetting(); const userStatus = questCreative.userStatus; let enrolledAt; if (userStatus != null) { enrolledAt = userStatus.enrolledAt; } dependencyMap = tmp3; const items = [setting, null != enrolledAt, questCreative.id]; return React.useCallback(() => { if (!dependencyMap) { let fireSurveyAction = questCreative(9919).SurveyActionTypes; fireSurveyAction = questCreative(9912).fireSurveyAction; obj = { quest_id: null }; obj[0] = questCreative.id; fireSurveyAction(setting ? fireSurveyAction.AD_IMPRESSION_QUEST_BAR_OPT_OUT : fireSurveyAction.AD_IMPRESSION_QUEST_BAR_OPT_IN, obj); const tmp4 = setting ? fireSurveyAction.AD_IMPRESSION_QUEST_BAR_OPT_OUT : fireSurveyAction.AD_IMPRESSION_QUEST_BAR_OPT_IN; const tmp7 = questCreative(9912); } }, items); };