decord/source/modules/quests/hooks/QuestHooks.tsx
2026-07-27 11:26:19 +00:00

1724 lines
67 KiB
TypeScript

// Module ID: 10428
// Function ID: 80663
// Name: _createForOfIteratorHelperLoose
// Dependencies: [5, 57, 31, 1922, 1348, 4813, 1850, 5931, 5933, 5932, 4977, 653, 1852, 566, 10429, 9401, 477, 9413, 5947, 4980, 5930, 664, 5953, 5955, 5958, 9420, 22, 10430, 9423, 10432, 1921, 10436, 4984, 10438, 5959, 5468, 10440, 9425, 7983, 5960, 10441, 1212, 1827, 4330, 5949, 4067, 3977, 9415, 3777, 10442, 675, 1327, 10819, 10823, 3804, 9212, 9205, 2]
// Exports: useClaimedCollectibleRewardMessage, useClaimedQuests, useConnectedConsoleLinkOnClick, useCosponsoredLogotypeAsset, useExpiredQuestsMap, useFetchQuestHomeBounties, useFilteredQuests, useIsQuestEligibleForMembersListPopout, useLaunchInGameActivityQuest, useManuallyStartConsoleQuest, useNonNullableQuest, useOnOpenGameClick, useProgressState, useQuest, useQuestBarImpressionSurvey, useQuestBarOrDockModeChangeTracking, useQuestCollectibles, useQuestCompletionDetails, useQuestForMemberListSocialEntryPoint, useQuestFormattedDate, useQuestHomeBounties, useQuestHomeFilterOptions, useQuestHomeSortOptions, useQuestHomeSortingFilteringAnalytics, useQuestHowToHelpArticle, useQuestOrbRewardMultiplier, useQuestPreviewActions, useQuestWarningTips, useQuestsWithPreviewAccess, useShouldShowBonusOrbsUX, useShouldShowPreviewToolTab, useShouldShowQuestPreviewOverrides, useShouldShowQuestsActivityPanelItem
// Module 10428 (_createForOfIteratorHelperLoose)
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import set from "set";
import supportedConsoles from "supportedConsoles";
import closure_6 from "_isNativeReflectConstruct";
import closure_7 from "_isNativeReflectConstruct";
import closure_8 from "_isNativeReflectConstruct";
import closure_9 from "_isNativeReflectConstruct";
import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose";
import { useConsoleQuestUIStore } from "useConsoleQuestUIStore";
import closure_12 from "_isNativeReflectConstruct";
import QuestsExperimentLocations from "QuestsExperimentLocations";
import ME from "ME";
import { PremiumTypes } from "GuildFeatures";
let closure_13;
let closure_14;
let closure_15;
let closure_16;
let closure_17;
let closure_18;
let closure_19;
let closure_20;
let closure_21;
let closure_22;
let closure_23;
let closure_24;
let closure_25;
const require = arg1;
function _createForOfIteratorHelperLoose(iterable) {
let closure_0 = iterable;
iterable = "undefined" !== typeof Symbol;
if (iterable) {
const _Symbol = Symbol;
iterable = iterable[Symbol.iterator];
}
if (!iterable) {
iterable = iterable[Symbol.iterator];
}
if (iterable) {
const iter = iterable.call(iterable);
const next = iter.next;
return next.bind(iter);
} else {
const _Array = Array;
let tmp = iterable;
if (!Array.isArray(iterable)) {
let tmp2;
if (iterable) {
if ("string" === typeof iterable) {
tmp2 = _arrayLikeToArray(iterable, undefined);
} else {
const toString = {}.toString;
const substr = toString.call(iterable).slice(8, -1);
let name = substr;
if (tmp3) {
name = iterable.constructor.name;
}
if ("Map" !== name) {
if ("Set" !== name) {
if ("Arguments" === name) {
let arr = _arrayLikeToArray(iterable, undefined);
} else {
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/;
}
}
tmp2 = arr;
}
const _Array2 = Array;
arr = Array.from(iterable);
const callResult = toString.call(iterable);
tmp3 = "Object" === substr && iterable.constructor;
}
}
tmp = tmp2;
if (!tmp2) {
const _TypeError = TypeError;
const typeError = new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
throw typeError;
}
}
if (tmp) {
closure_0 = tmp;
}
let c1 = 0;
return () => {
if (closure_1 >= length.length) {
let obj = { done: true };
} else {
obj = { done: false };
closure_1 = tmp3 + 1;
obj.value = length[+closure_1];
}
return obj;
};
}
}
function _arrayLikeToArray(arg0, arg1) {
let length;
if (tmp) {
length = arg0.length;
}
const ArrayResult = Array(length);
for (let num = 0; num < length; num = num + 1) {
ArrayResult[num] = arg0[num];
}
return ArrayResult;
}
function useQuests(arg0) {
let obj = arg0;
if (arg0 === undefined) {
obj = { fetchPolicy: "cache-only", callerSource: "unknown" };
}
let hasFetched;
let dependencyMap;
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(566).useStateFromStoresArray(items, () => {
const quests = outer1_12.quests;
const items = [...quests.values()];
return items;
});
let obj2 = obj(566);
const items1 = [closure_12];
let excludedQuests = obj(566).useStateFromStoresArray(items1, () => {
const excludedQuests = outer1_12.excludedQuests;
const items = [...excludedQuests.values()];
return items;
});
let obj3 = obj(566);
const items2 = [closure_12];
const stateFromStoresObject = obj(566).useStateFromStoresObject(items2, () => ({ isFetchingCurrentQuests: outer1_12.isFetchingCurrentQuests, lastFetchedCurrentQuests: outer1_12.lastFetchedCurrentQuests }));
isFetchingCurrentQuests = stateFromStoresObject.isFetchingCurrentQuests;
lastFetchedCurrentQuests = stateFromStoresObject.lastFetchedCurrentQuests;
let obj4 = obj(566);
isEligibleForQuests = obj(10429).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 = obj.fetchPolicy;
}
}
if (flag) {
if (isEligibleForQuests) {
if (!hasFetched) {
if (!isFetchingCurrentQuests) {
dependencyMap(true);
obj = obj(9401);
const currentQuests = obj.fetchCurrentQuests();
if (obj2.isMac()) {
const obj3 = hasFetched(9413);
}
obj2 = obj(477);
obj = { location: "QuestHookUseQuests" };
if (!obj4.getConfig(obj).enableNewRequestBehavior) {
const _HermesInternal = HermesInternal;
const questToDeliver = obj(9401).fetchQuestToDeliver(obj(4980).AdPlacement.MOBILE_HOME_DOCK_AREA, "use_quests_" + obj.callerSource);
const obj6 = obj(9401);
}
obj4 = hasFetched(5947);
}
}
}
}
}
}, items3);
return { quests, excludedQuests, isFetchingCurrentQuests, hasFetched };
}
function defaultSortFn(id, id2, questHomeHero) {
let tmp = id.id === closure_20;
let tmp2 = id2.id === closure_20;
if (tmp) {
const userStatus = id.userStatus;
let completedAt;
if (null != userStatus) {
completedAt = userStatus.completedAt;
}
tmp = null == completedAt;
}
if (tmp2) {
const userStatus2 = id2.userStatus;
let completedAt1;
if (null != userStatus2) {
completedAt1 = userStatus2.completedAt;
}
tmp2 = null == completedAt1;
}
if (tmp !== tmp2) {
let num15 = 1;
if (tmp) {
num15 = c27;
}
return num15;
} else {
const userStatus6 = id.userStatus;
let claimedAt;
const obj7 = require(5930) /* _createForOfIteratorHelperLoose */;
if (null != userStatus6) {
claimedAt = userStatus6.claimedAt;
}
const userStatus3 = id2.userStatus;
let claimedAt1;
if (null != userStatus3) {
claimedAt1 = userStatus3.claimedAt;
}
const userStatus4 = id.userStatus;
let enrolledAt;
if (null != userStatus4) {
enrolledAt = userStatus4.enrolledAt;
}
const userStatus5 = id2.userStatus;
let enrolledAt1;
if (null != userStatus5) {
enrolledAt1 = userStatus5.enrolledAt;
}
const result = 30 * importDefault(664).Millis.MINUTE;
const tmp19 = hasEnrolledTimeLapsed(id, result);
const tmp20 = hasEnrolledTimeLapsed(id2, result);
if (tmp45) {
questHomeHero = questHomeHero.questHomeHero;
if (null != questHomeHero) {
if (!questHomeHero.isQuestHomeHeroShelfEnabled) {
const result1 = require(5953) /* _createForOfIteratorHelperLoose */.isQuestFeaturedByHero(questHomeHero, id.id);
const obj = require(5953) /* _createForOfIteratorHelperLoose */;
let num6 = 1;
if (result1) {
num6 = c27;
}
return num6;
}
}
const questType = require(5953) /* _createForOfIteratorHelperLoose */.getQuestType(id.config);
const obj3 = require(5953) /* _createForOfIteratorHelperLoose */;
const questType1 = require(5953) /* _createForOfIteratorHelperLoose */.getQuestType(id2.config);
const obj4 = require(5953) /* _createForOfIteratorHelperLoose */;
const result2 = require(5955) /* _createForOfIteratorHelperLoose */.hasWatchVideoOnMobileTasks(id);
const obj5 = require(5955) /* _createForOfIteratorHelperLoose */;
const result3 = require(5955) /* _createForOfIteratorHelperLoose */.hasWatchVideoOnMobileTasks(id2);
if (result2 !== result3) {
if (!result2) {
return num10;
}
let num14 = 1;
if (result2) {
num14 = c27;
}
num10 = num14;
}
if (questType !== questType1) {
num10 = 1;
if (questType === require(5958) /* QuestType */.QuestType.VIDEO) {
num10 = c27;
}
}
if (tmp19 === tmp20) {
if (tmp8 !== tmp10) {
let num12 = 1;
if (!tmp8) {
num12 = c27;
}
let tmp41 = num12;
} else if (tmp12 !== tmp14) {
let num11 = 1;
if (tmp12) {
num11 = c27;
}
tmp41 = num11;
} else {
tmp41 = sortByDate(id.config.expiresAt, id2.config.expiresAt, constants7.ASC);
}
}
let num13 = 1;
if (!tmp19) {
num13 = c27;
}
tmp41 = num13;
const obj6 = require(5955) /* _createForOfIteratorHelperLoose */;
} else {
if (tmp8 !== tmp10) {
let num4 = 1;
if (tmp8) {
num4 = c27;
}
let tmp23 = num4;
} else if (tmp12 !== tmp14) {
let num3 = 1;
if (tmp12) {
num3 = c27;
}
tmp23 = num3;
} else {
tmp23 = sortByDate(id.config.expiresAt, id2.config.expiresAt, constants7.DESC);
}
return tmp23;
}
tmp45 = !require(5930) /* _createForOfIteratorHelperLoose */.isQuestExpired(id);
}
}
function recentSortFn(config, config2) {
return sortByDate(config.config.startsAt, config2.config.startsAt, constants7.DESC);
}
function recentlyEnrolledSortFn(userStatus, userStatus2) {
userStatus = userStatus.userStatus;
let enrolledAt;
if (null != userStatus) {
enrolledAt = userStatus.enrolledAt;
}
userStatus2 = userStatus2.userStatus;
if (null != userStatus2) {
enrolledAt = userStatus2.enrolledAt;
}
if (null == enrolledAt) {
if (null == enrolledAt) {
let num = sortByDate(userStatus.config.expiresAt, userStatus2.config.expiresAt, constants7.DESC);
}
return num;
}
if (null != enrolledAt) {
if (null == enrolledAt) {
num = c27;
}
}
if (null != enrolledAt) {
num = sortByDate(enrolledAt, enrolledAt, constants7.DESC);
} else {
num = 1;
}
}
function expiringSoonSortFn(config, config2) {
return sortByDate(config.config.expiresAt, config2.config.expiresAt, constants7.ASC);
}
function doesQuestPassTaskFilter(quest) {
if (constants4.VIDEO === arg1) {
return require(5955) /* _createForOfIteratorHelperLoose */.hasWatchVideoTasks(quest);
} else if (constants4.PLAY === arg1) {
let obj = require(5955) /* _createForOfIteratorHelperLoose */;
obj = { quest };
let hasPlayOnDesktopTaskResult = obj.hasPlayOnDesktopTask(obj);
if (!hasPlayOnDesktopTaskResult) {
obj = { quest };
hasPlayOnDesktopTaskResult = require(5955) /* _createForOfIteratorHelperLoose */.hasStreamOnDesktopTask(obj);
const obj3 = require(5955) /* _createForOfIteratorHelperLoose */;
}
if (!hasPlayOnDesktopTaskResult) {
hasPlayOnDesktopTaskResult = require(5955) /* _createForOfIteratorHelperLoose */.hasPlayActivityTask(quest);
const obj5 = require(5955) /* _createForOfIteratorHelperLoose */;
}
if (!hasPlayOnDesktopTaskResult) {
hasPlayOnDesktopTaskResult = require(5955) /* _createForOfIteratorHelperLoose */.isConsoleQuest(quest);
const obj6 = require(5955) /* _createForOfIteratorHelperLoose */;
}
if (!hasPlayOnDesktopTaskResult) {
hasPlayOnDesktopTaskResult = require(5955) /* _createForOfIteratorHelperLoose */.isInGameQuest(quest);
const obj7 = require(5955) /* _createForOfIteratorHelperLoose */;
}
return hasPlayOnDesktopTaskResult;
} else {
return false;
}
}
function doesQuestPassRewardFilter(config) {
if (constants5.VIRTUAL_CURRENCY === arg1) {
return require(9420) /* getCollectiblesQuestReward */.hasVirtualCurrencyReward(config.config);
} else if (constants5.COLLECTIBLE === arg1) {
return require(9420) /* getCollectiblesQuestReward */.hasCollectiblesQuestReward(config.config);
} else if (constants5.IN_GAME === arg1) {
let hasInGameQuestRewardResult = require(9420) /* getCollectiblesQuestReward */.hasInGameQuestReward(config.config);
if (!hasInGameQuestRewardResult) {
hasInGameQuestRewardResult = require(9420) /* getCollectiblesQuestReward */.hasQuestRewardCode(config.config);
const obj2 = require(9420) /* getCollectiblesQuestReward */;
}
return hasInGameQuestRewardResult;
} else {
return false;
}
}
function doesQuestPassFilter(arg0, arg1, arr) {
let closure_0 = arg0;
if ("task" === arg1) {
let tmp = doesQuestPassTaskFilter;
} else if ("reward" === arg1) {
tmp = doesQuestPassRewardFilter;
}
const importDefault = tmp;
return 0 === arr.length || arr.some((arg0) => tmp(closure_0, arg0.filter));
}
function sortQuests(arr) {
let filters;
let sortMethod;
let tmp = arg1;
let tmp2 = arg2;
if (arg1 === undefined) {
tmp = closure_28;
}
if (tmp2 === undefined) {
tmp2 = closure_29;
}
({ sortMethod, filters } = tmp);
let obj = arr;
if (null != filters) {
obj = arr;
if (0 !== filters.length) {
obj = (function filterQuests(arr, filters) {
if (0 === filters.length) {
return arr;
} else {
let closure_0 = outer1_0(outer1_2[26]).groupBy(filters, "group");
return arr.filter((arg0) => {
let closure_0 = arg0;
const entries = Object.entries(closure_0);
return entries.every((arg0) => {
let tmp;
let tmp2;
[tmp, tmp2] = arg0;
return outer3_45(closure_0, tmp, tmp2);
});
});
}
})(arr, filters);
}
}
if (constants3.MOST_RECENT === sortMethod) {
let tmp6 = recentSortFn;
} else if (constants3.RECENTLY_ENROLLED === sortMethod) {
tmp6 = recentlyEnrolledSortFn;
} else if (constants3.EXPIRING_SOON === sortMethod) {
tmp6 = expiringSoonSortFn;
} else {
const SUGGESTED = constants3.SUGGESTED;
tmp6 = defaultSortFn;
}
return obj.sort((function prioritizeLiveQuests(arg0, arg1) {
let closure_0 = arg0;
let closure_1 = arg1;
return (value, value) => {
const tmp = !outer2_0(outer2_2[20]).isQuestExpired(value);
const obj = outer2_0(outer2_2[20]);
if (tmp !== !obj2.isQuestExpired(value)) {
let num = 1;
if (tmp) {
num = outer2_27;
}
let tmp4 = num;
} else {
tmp4 = callback(value, value, closure_1);
}
return tmp4;
};
})(tmp6, tmp2));
}
function sortByDate(expiresAt, expiresAt2, DESC) {
let num = 1;
if (DESC === constants7.DESC) {
num = c27;
}
return expiresAt.localeCompare(expiresAt2) * num;
}
function useAllQuests(quests, sortMethod) {
let closure_0 = quests;
let closure_1 = sortMethod;
const tmp = (function useSortMetadata() {
const shouldRemoveQuestHomeHero = quests(tmp[27]).useShouldRemoveQuestHomeHero();
const obj = quests(tmp[27]);
const items = [outer1_12];
const items1 = [shouldRemoveQuestHomeHero];
const stateFromStores = quests(tmp[13]).useStateFromStores(items, () => null, items1);
const isShelfEnabled = outer1_63(stateFromStores).isShelfEnabled;
const items2 = [stateFromStores, isShelfEnabled];
return React.useMemo(() => ({ questHomeHero: stateFromStores, isQuestHomeHeroShelfEnabled: isShelfEnabled }), items2);
})();
const dependencyMap = tmp;
let _isNativeReflectConstruct = React.useRef([]);
let set = React.useRef(sortMethod.sortMethod);
React = React.useRef(sortMethod.filters);
let closure_6 = React.useRef(0);
let closure_7 = React.useRef(tmp);
let items = [quests, sortMethod, tmp];
return React.useMemo(() => {
if (0 === quests.length) {
return [];
} else {
if (ref.current.length > 0) {
if (ref3.current === quests.length) {
if (ref2.current === sortMethod.sortMethod) {
if (React.current === sortMethod.filters) {
if (ref4.current === closure_2) {
return ref.current;
}
}
}
}
}
const mapped = outer1_46(quests, sortMethod, closure_2).map((id) => id.id);
ref.current = mapped;
ref2.current = sortMethod.sortMethod;
React.current = sortMethod.filters;
ref3.current = quests.length;
ref4.current = closure_2;
return mapped;
}
}, items);
}
function isQuestHiddenFromQuestHome(value) {
let isQuestExpiredResult = require(5930) /* _createForOfIteratorHelperLoose */.isQuestExpired(value);
if (isQuestExpiredResult) {
isQuestExpiredResult = !require(5930) /* _createForOfIteratorHelperLoose */.hasUnclaimedReward(value.userStatus);
const obj2 = require(5930) /* _createForOfIteratorHelperLoose */;
}
return isQuestExpiredResult;
}
function useIsQuestExpired(memo) {
const _require = memo;
const items = [closure_12];
const items1 = [memo];
return _require(566).useStateFromStores(items, () => {
let isQuestExpiredResult = null != memo;
if (isQuestExpiredResult) {
isQuestExpiredResult = outer1_12.isQuestExpired(memo.id);
}
return isQuestExpiredResult;
}, items1);
}
function useIsQuestProgressingOnDesktop(quest) {
const _require = quest;
const items = [closure_12];
return _require(566).useStateFromStores(items, () => outer1_12.isProgressingOnDesktop(quest.id));
}
function useIsQuestProgressingOnConsole(quest) {
let closure_0 = quest;
const items = [quest];
return React.useMemo(() => quest(outer1_2[23]).isQuestProgressingOnConsole(quest), items);
}
function useIsQuestProgressingVideoQuest(quest) {
const _require = quest;
const items = [closure_12];
const items1 = [quest, _require(566).useStateFromStores(items, () => outer1_12.getOptimisticProgress(quest.id, quest(outer1_2[32]).FirstPartyQuestTaskTypes.WATCH_VIDEO))];
return React.useMemo(() => quest(outer1_2[33]).isVideoQuestProgressing(quest), items1);
}
function useIsQuestProgressing(quest) {
let tmp = useIsQuestProgressingOnDesktop(quest);
const tmp2 = useIsQuestProgressingOnConsole(quest);
if (!tmp) {
tmp = tmp2;
}
if (!tmp) {
tmp = tmp3;
}
return tmp;
}
function useThirdPartyTaskDetails(quest) {
let closure_0 = quest;
const items = [quest];
return React.useMemo(() => quest(outer1_2[23]).getThirdPartyTaskDetails(quest), items);
}
function useGetOrFetchApplicationForConsoleQuests(arg0) {
let closure_0 = arg0;
const items = [arg0];
const memo = React.useMemo(() => {
let iter2;
const set = new Set();
const tmp = outer1_36(callback);
let iter = tmp();
if (!iter.done) {
do {
let tmp2 = callback;
let tmp3 = outer1_2;
let obj2 = callback(outer1_2[23]);
let consoleApplicationId = obj2.getConsoleApplicationId(iter.value);
if (null != consoleApplicationId) {
let addResult = set.add(consoleApplicationId);
}
iter2 = tmp();
iter = iter2;
} while (!iter2.done);
}
return Array.from(set);
}, items);
return importDefault(5468)(memo);
}
function useConnectedAccounts() {
let obj = accounts(566);
const items = [closure_8];
const stateFromStoresObject = obj.useStateFromStoresObject(items, () => ({ fetching: outer1_8.isFetching(), accounts: outer1_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 === outer2_23.XBOX);
const found2 = found.filter((type) => type.type === outer2_23.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;
}
function useWaitingForConsoleConnection(quest) {
quest = quest.quest;
const tmp = useIsQuestProgressing(quest);
const tmp2 = 0 === useConnectedAccounts().xboxAndPlaystationAccounts.length;
const obj = require(5955) /* _createForOfIteratorHelperLoose */;
return require(5955) /* _createForOfIteratorHelperLoose */.isConsoleQuest(quest) && tmp2 && !tmp;
}
function useSelectedTaskPlatform(id) {
const _require = id;
const items = [closure_12];
const items1 = [_require(566).useStateFromStores(items, () => outer1_12.selectedTaskPlatform(closure_0)), ];
const items2 = [id];
items1[1] = React.useCallback((platform) => id(outer1_2[15]).selectTaskPlatform(id, platform), items2);
return items1;
}
function useTaskPlatformScreen(quest, questTaskDetails) {
let closure_0 = quest;
let closure_1 = questTaskDetails;
const tmp = hasItem1(useSelectedTaskPlatform(quest.id), 2);
const first = tmp[0];
const items = [quest];
const memo = memo1.useMemo(() => quest(first[31]).supportedTaskPlatforms(quest), items);
const hasItem = memo.includes(constants.DESKTOP);
hasItem1 = memo.includes(constants.CONSOLE);
const items1 = [questTaskDetails];
const tmp5 = useIsQuestProgressingOnDesktop(quest);
memo1 = memo1.useMemo(() => {
const match = quest(first[43]).match(closure_1);
const str = quest(first[43]);
let obj = { taskType: quest(first[32]).FirstPartyQuestTaskTypes.PLAY_ON_DESKTOP };
const withResult = match.with({ percentComplete: 0 }, () => null);
obj = { taskType: quest(first[32]).FirstPartyQuestTaskTypes.PLAY_ACTIVITY };
const withResult1 = match.with({ percentComplete: 0 }, () => null).with(obj, () => outer2_13.DESKTOP);
const withResult2 = match.with({ percentComplete: 0 }, () => null).with(obj, () => outer2_13.DESKTOP).with(obj, () => outer2_13.DESKTOP);
const obj1 = { taskType: quest(first[32]).FirstPartyQuestTaskTypes.WATCH_VIDEO };
const withResult3 = withResult2.with({ taskType: quest(first[32]).FirstPartyQuestTaskTypes.WATCH_VIDEO }, () => outer2_13.DESKTOP);
const obj2 = { taskType: quest(first[32]).FirstPartyQuestTaskTypes.WATCH_VIDEO_ON_MOBILE };
const withResult4 = withResult3.with({ taskType: quest(first[32]).FirstPartyQuestTaskTypes.WATCH_VIDEO_ON_MOBILE }, () => outer2_13.DESKTOP);
const obj3 = { taskType: quest(first[32]).FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP };
const withResult5 = withResult4.with({ taskType: quest(first[32]).FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP }, () => outer2_13.DESKTOP);
const obj4 = { taskType: quest(first[32]).FirstPartyQuestTaskTypes.PLAY_ON_XBOX };
const withResult6 = withResult5.with({ taskType: quest(first[32]).FirstPartyQuestTaskTypes.PLAY_ON_XBOX }, () => outer2_13.CONSOLE);
const obj5 = { taskType: quest(first[32]).FirstPartyQuestTaskTypes.PLAY_ON_PLAYSTATION };
const withResult7 = withResult6.with({ taskType: quest(first[32]).FirstPartyQuestTaskTypes.PLAY_ON_PLAYSTATION }, () => outer2_13.CONSOLE);
const obj6 = { taskType: quest(first[32]).FirstPartyQuestTaskTypes.ACHIEVEMENT_IN_GAME };
const withResult8 = withResult7.with({ taskType: quest(first[32]).FirstPartyQuestTaskTypes.ACHIEVEMENT_IN_GAME }, () => outer2_13.DESKTOP);
const obj7 = { taskType: quest(first[32]).FirstPartyQuestTaskTypes.ACHIEVEMENT_IN_ACTIVITY };
return withResult8.with({ taskType: quest(first[32]).FirstPartyQuestTaskTypes.ACHIEVEMENT_IN_ACTIVITY }, () => outer2_13.DESKTOP).exhaustive();
}, items1);
if (tmp5) {
let DESKTOP = constants.DESKTOP;
} else {
DESKTOP = null;
if (tmp6) {
DESKTOP = constants.CONSOLE;
}
}
const items2 = [hasItem1, hasItem, memo1, DESKTOP, first];
const items3 = [
memo1.useMemo(() => {
let obj = { lastPlatformProgress: memo1, currentProgressingPlatform: DESKTOP, selectedPlatform: first };
const match = quest(first[43]).match(obj);
obj = { currentProgressingPlatform: outer1_13.CONSOLE };
const str = quest(first[43]);
obj = { currentProgressingPlatform: outer1_13.DESKTOP };
const withResult = match.with(obj, () => callback(first[19]).TaskPlatformScreen.CONSOLE);
const obj1 = { currentProgressingPlatform: null, lastPlatformProgress: outer1_13.CONSOLE };
const withResult1 = match.with(obj, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with(obj, () => callback(first[19]).TaskPlatformScreen.DESKTOP);
const obj2 = { currentProgressingPlatform: null, lastPlatformProgress: outer1_13.DESKTOP };
const withResult2 = match.with(obj, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with(obj, () => callback(first[19]).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: outer1_13.CONSOLE }, () => callback(first[19]).TaskPlatformScreen.CONSOLE);
const obj3 = { currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: outer1_13.CONSOLE };
const withResult3 = match.with(obj, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with(obj, () => callback(first[19]).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: outer1_13.CONSOLE }, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with({ currentProgressingPlatform: null, lastPlatformProgress: outer1_13.DESKTOP }, () => callback(first[19]).TaskPlatformScreen.DESKTOP);
const obj4 = { currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: outer1_13.DESKTOP };
const withResult4 = match.with(obj, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with(obj, () => callback(first[19]).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: outer1_13.CONSOLE }, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with({ currentProgressingPlatform: null, lastPlatformProgress: outer1_13.DESKTOP }, () => callback(first[19]).TaskPlatformScreen.DESKTOP).with(obj3, () => callback(first[19]).TaskPlatformScreen.CONSOLE);
const withResult5 = match.with(obj, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with(obj, () => callback(first[19]).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: outer1_13.CONSOLE }, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with({ currentProgressingPlatform: null, lastPlatformProgress: outer1_13.DESKTOP }, () => callback(first[19]).TaskPlatformScreen.DESKTOP).with(obj3, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with(obj4, () => callback(first[19]).TaskPlatformScreen.DESKTOP);
return match.with(obj, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with(obj, () => callback(first[19]).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: outer1_13.CONSOLE }, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with({ currentProgressingPlatform: null, lastPlatformProgress: outer1_13.DESKTOP }, () => callback(first[19]).TaskPlatformScreen.DESKTOP).with(obj3, () => callback(first[19]).TaskPlatformScreen.CONSOLE).with(obj4, () => callback(first[19]).TaskPlatformScreen.DESKTOP).with({ currentProgressingPlatform: null, lastPlatformProgress: null, selectedPlatform: null }, () => {
if (outer1_4) {
if (outer1_3) {
let SELECT = callback(first[19]).TaskPlatformScreen.SELECT;
}
return SELECT;
}
const TaskPlatformScreen = callback(first[19]).TaskPlatformScreen;
SELECT = outer1_4 ? TaskPlatformScreen.CONSOLE : TaskPlatformScreen.DESKTOP;
}).exhaustive();
}, items2),
memo,
tmp[1]
];
return items3;
}
function useIsPreviewerOnAnyQuest() {
let items = [closure_12];
const stateFromStoresArray = require(566) /* initialize */.useStateFromStoresArray(items, () => {
const quests = outer1_12.quests;
const items = [...quests.values()];
return items;
});
return stateFromStoresArray.some((preview) => preview.preview);
}
function hasEnrolledTimeLapsed(userStatus, result) {
userStatus = userStatus.userStatus;
let completedAt;
if (null != userStatus) {
completedAt = userStatus.completedAt;
}
const userStatus2 = userStatus.userStatus;
let enrolledAt;
if (null != userStatus2) {
enrolledAt = userStatus2.enrolledAt;
}
let tmp4 = null != enrolledAt && null == completedAt;
if (tmp4) {
const _Date = Date;
let _Date2 = Date;
const userStatus3 = userStatus.userStatus;
let enrolledAt1;
const timestamp = Date.now();
if (null != userStatus3) {
enrolledAt1 = userStatus3.enrolledAt;
}
const prototype = _Date2.prototype;
_Date2 = new _Date2(enrolledAt1);
tmp4 = timestamp - _Date2.getTime() > result;
}
return tmp4;
}
function useQuestHomeHeroShelf(questIds) {
questIds = undefined;
const items = [closure_12];
stateFromStores = stateFromStores(566).useStateFromStores(items, () => outer1_12.quests);
if (null != questIds) {
questIds = questIds.questIds;
}
const items1 = [stateFromStores, questIds];
return React.useMemo(() => {
if (null == questIds) {
let obj = { shelfQuests: [], isShelfEnabled: false };
return obj;
} else {
const mapped = questIds.map((arg0) => outer1_0.get(arg0));
const found = mapped.filter(stateFromStores(outer1_2[51]).isNotNullish);
const found1 = found.filter((value) => !stateFromStores(outer2_2[20]).isQuestExpired(value));
if (found1.length <= 1) {
obj = { shelfQuests: [], isShelfEnabled: false };
} else {
obj = { shelfQuests: found1, isShelfEnabled: true };
}
return obj;
}
}, items1);
}
({ QuestTaskPlatform: closure_13, 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 } = QuestsExperimentLocations);
({ HelpdeskArticles: closure_22, PlatformTypes: closure_23, ThemeTypes: closure_24, AnalyticEvents: closure_25 } = ME);
let c27 = -1;
let closure_28 = {};
let closure_29 = { questHomeHero: null, isQuestHomeHeroShelfEnabled: false };
let closure_30 = { DESC: 0, [0]: "DESC", ASC: 1, [1]: "ASC" };
let obj = { ALL: "all", CLAIMED: "claimed", PREVIEW_TOOL: "preview_tool" };
function useQuestTaskDetails(quest) {
let closure_0 = quest;
const items = [quest];
let callback = React.useCallback(() => quest(5955).getQuestTaskDetails(quest), items);
const tmp2 = callback(React.useState(callback()), 2);
let closure_2 = tmp2[1];
const items1 = [callback];
const callback1 = React.useCallback(() => dependencyMap(callback()), items1);
const tmp4 = useIsQuestProgressing(quest);
callback = tmp4;
const items2 = [quest, tmp4, callback1];
const effect = React.useEffect(() => {
const userStatus = quest.userStatus;
let enrolledAt;
if (null != userStatus) {
enrolledAt = userStatus.enrolledAt;
}
if (null != enrolledAt) {
const userStatus2 = quest.userStatus;
let completedAt;
if (null != userStatus2) {
completedAt = userStatus2.completedAt;
}
if (null == completedAt) {
const userStatus3 = quest.userStatus;
let claimedAt;
if (null != userStatus3) {
claimedAt = userStatus3.claimedAt;
}
if (null == claimedAt) {
if (set) {
const _window = window;
quest = window.setInterval(() => {
outer1_3();
}, callback(664).Millis.SECOND);
return () => {
clearInterval(closure_0);
outer1_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_34 = 6 * require("set").Millis.HOUR;
const MINUTE = require("set").Millis.MINUTE;
let result = require("result").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, quests) {
let excludedQuests;
let hasFetched;
let isFetchingCurrentQuests;
let iter2;
let tmp = quests;
if (quests === undefined) {
tmp = closure_28;
}
let tmp2 = useQuests({ fetchPolicy: "cache-and-network", callerSource: "use_filtered_quests" });
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) {
let closure_0 = quests;
const items = [quests];
const memo = outer1_5.useMemo(() => quests.filter((userStatus) => {
userStatus = userStatus.userStatus;
let completedAt;
if (null != userStatus) {
completedAt = userStatus.completedAt;
}
let tmp2 = null != completedAt;
const userStatus2 = userStatus.userStatus;
if (null != userStatus2) {
const claimedAt = userStatus2.claimedAt;
}
if (tmp2) {
tmp2 = null != claimedAt;
}
return tmp2;
}), items);
let closure_2 = outer1_5.useRef([]);
const items1 = [memo];
return outer1_5.useMemo(() => {
if (0 === memo.length) {
return [];
} else {
if (ref.current.length > 0) {
if (ref.current.length === memo.length) {
return ref.current;
}
}
const sorted = memo.sort((userStatus, userStatus2) => {
userStatus = userStatus.userStatus;
let claimedAt;
if (null != userStatus) {
claimedAt = userStatus.claimedAt;
}
userStatus2 = userStatus2.userStatus;
let claimedAt1;
if (null != userStatus2) {
claimedAt1 = userStatus2.claimedAt;
}
if (null == claimedAt !== (null == claimedAt1)) {
let num = 1;
if (tmp2) {
num = outer3_27;
}
let tmp6 = num;
} else {
tmp6 = outer3_47(userStatus.config.rewardsConfig.rewardsExpireAt, userStatus2.config.rewardsConfig.rewardsExpireAt, outer3_30.DESC);
}
return tmp6;
});
const mapped = sorted.map((id) => id.id);
ref.current = mapped;
return mapped;
}
}, items1);
})(quests);
quests = [];
if (ALL === obj.ALL) {
tmp4 = tmp3;
}
const tmp5Result = _createForOfIteratorHelperLoose(tmp4);
let iter = tmp5Result();
if (!iter.done) {
do {
let value = map.get(iter.value);
let removeExpiredQuests = null != value;
if (removeExpiredQuests) {
let tmp8 = obj;
removeExpiredQuests = ALL === obj.ALL;
}
if (removeExpiredQuests) {
removeExpiredQuests = tmp.removeExpiredQuests;
}
if (removeExpiredQuests) {
let tmp9 = isQuestHiddenFromQuestHome;
removeExpiredQuests = isQuestHiddenFromQuestHome(value);
}
let tmp10 = null == value || removeExpiredQuests;
if (!tmp10) {
let arr = quests.push(value);
}
iter2 = tmp5Result();
iter = iter2;
} while (!iter2.done);
}
return { quests, excludedQuests, isFetchingCurrentQuests, hasFetched };
};
export const useClaimedQuests = function useClaimedQuests() {
const _require = React.useRef(false);
const items = [closure_12];
let claimedQuests = _require(566).useStateFromStoresArray(items, () => {
const claimedQuests = outer1_12.claimedQuests;
return Array.from(claimedQuests.values());
});
let obj = _require(566);
const items1 = [closure_12];
const isFetchingClaimedQuests = _require(566).useStateFromStores(items1, () => outer1_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(outer1_2[15]).fetchClaimedQuests();
const obj = ref(outer1_2[15]);
}
}, items2);
return { claimedQuests, isFetchingClaimedQuests };
};
export const useExpiredQuestsMap = function useExpiredQuestsMap() {
const items = [closure_12];
return require(566) /* initialize */.useStateFromStores(items, () => outer1_12.getExpiredQuestsMap());
};
export const useShouldShowBonusOrbsUX = function useShouldShowBonusOrbsUX(quest, questOrbMultiplierEligibility) {
const tmp = useIsQuestExpired(quest);
const result = require(9420) /* getCollectiblesQuestReward */.hasVirtualCurrencyReward(quest.config);
const obj = require(9420) /* getCollectiblesQuestReward */;
const result1 = require(9420) /* getCollectiblesQuestReward */.hasPremiumOrbQuantity(quest.config);
let tmp5 = !tmp;
const obj2 = require(9420) /* getCollectiblesQuestReward */;
if (tmp5) {
tmp5 = result;
}
if (tmp5) {
tmp5 = result1;
}
if (tmp5) {
tmp5 = tmp4;
}
return tmp5;
};
export const useQuestOrbRewardMultiplier = function useQuestOrbRewardMultiplier(questId) {
const _require = questId;
const items = [closure_12];
const items1 = [questId];
return _require(566).useStateFromStores(items, () => {
const quest = outer1_12.getQuest(questId);
let questOrbMultiplier = null;
if (null != quest) {
questOrbMultiplier = questId(outer1_2[25]).getQuestOrbMultiplier(quest.config);
const obj = questId(outer1_2[25]);
}
return questOrbMultiplier;
}, items1);
};
export { useIsQuestExpired };
export const useIsQuestEligibleForMembersListPopout = function useIsQuestEligibleForMembersListPopout(userStatus) {
const _require = userStatus;
let closure_1 = arg1;
const items = [closure_7];
const stateFromStores = _require(566).useStateFromStores(items, () => {
let channelId;
if (null != channelId) {
channelId = channelId.channelId;
}
const channel = outer1_7.getChannel(channelId);
let tmp5 = null;
if (null != channel) {
tmp5 = channel;
}
return tmp5;
});
const obj = _require(566);
const items1 = [closure_12];
const stateFromStores1 = _require(566).useStateFromStores(items1, () => null != outer1_12.questEnrollmentBlockedUntil, []);
const obj2 = _require(566);
const items2 = [closure_9];
const stateFromStores2 = _require(566).useStateFromStores(items2, () => {
const currentUser = outer1_9.getCurrentUser();
let id;
if (null != currentUser) {
id = currentUser.id;
}
return id;
});
const obj3 = _require(566);
const items3 = [closure_12];
const items4 = [userStatus];
if (null != userStatus) {
if (!stateFromStores1) {
if (!obj4.useStateFromStores(items3, () => {
let isQuestExpiredResult = null != userStatus;
if (isQuestExpiredResult) {
isQuestExpiredResult = outer1_12.isQuestExpired(userStatus.id);
}
return isQuestExpiredResult;
}, items4)) {
if (stateFromStores2 !== arg2) {
userStatus = userStatus.userStatus;
let claimedAt;
if (null != userStatus) {
claimedAt = userStatus.claimedAt;
}
let tmp6 = null != claimedAt;
if (tmp6) {
tmp6 = !obj5.isStreamingAndCanWatch(arg1, stateFromStores);
}
return !tmp6;
}
}
}
}
return false;
};
export const useQuestFormattedDate = function useQuestFormattedDate(rewardsExpireAt, arg1) {
let tmp = arg1;
const _require = rewardsExpireAt;
if (arg1 === undefined) {
const obj = { dateStyle: "short" };
tmp = obj;
}
const importDefault = tmp;
let stateFromStores;
const items = [closure_6];
stateFromStores = _require(stateFromStores[13]).useStateFromStores(items, () => outer1_6.locale);
const items1 = [rewardsExpireAt, tmp, stateFromStores];
return React.useMemo(() => {
let str = "";
if (null != closure_0) {
const _Date = Date;
const date = new Date(closure_0);
str = date.toLocaleDateString(stateFromStores, closure_1);
}
return str;
}, items1);
};
export const useOnOpenGameClick = function useOnOpenGameClick(quest) {
quest = quest.quest;
const content = quest.content;
const ctaContent = quest.ctaContent;
const sourceQuestContent = quest.sourceQuestContent;
const getQuestImpressionId = quest(ctaContent[29]).useGetQuestImpressionId();
const items = [quest, content, ctaContent, getQuestImpressionId, sourceQuestContent];
return React.useCallback(() => {
if (quest.id !== outer1_21) {
let obj = { content, ctaContent, impressionId: getQuestImpressionId(), sourceQuestContent };
quest(ctaContent[31]).openGameLinkDirectly(quest, obj);
const obj2 = quest(ctaContent[31]);
} else {
const _window = window;
obj = content(ctaContent[30]);
window.open(obj.getArticleURL(outer1_22.VIRTUAL_CURRENCY_LEARN_MORE));
}
}, items);
};
export { useIsQuestProgressingOnDesktop };
export { useIsQuestProgressingOnConsole };
export { useIsQuestProgressingVideoQuest };
export { useIsQuestProgressing };
export { useQuestTaskDetails };
export { useThirdPartyTaskDetails };
export const useConnectedConsoleLinkOnClick = function useConnectedConsoleLinkOnClick(quest) {
let dependencyMap;
let importDefault;
quest = quest.quest;
({ questContent: importDefault, sourceQuestContent: dependencyMap } = quest);
let _isNativeReflectConstruct = useWaitingForConsoleConnection({ quest });
let set = quest(10432).useGetQuestImpressionId();
return () => {
let obj = quest(outer1_2[31]);
if (_isNativeReflectConstruct) {
obj = { quest };
obj = { content: closure_1, ctaContent: tmp(tmp2[34]).QuestContentCTA.CONNECT_CONSOLE_LINK, impressionId: callback(), sourceQuestContent: closure_2 };
const result = obj.openAddConsoleConnectionModal(obj, obj);
} else {
const obj1 = { quest };
const obj2 = { content: closure_1, ctaContent: tmp(tmp2[34]).QuestContentCTA.VIEW_CONSOLE_CONNECTIONS_LINK, impressionId: callback(), sourceQuestContent: closure_2 };
const result1 = obj.openConsoleConnectionSettings(obj1, obj2);
}
};
};
export { useGetOrFetchApplicationForConsoleQuests };
export const useQuestForMemberListSocialEntryPoint = function useQuestForMemberListSocialEntryPoint(arg0) {
const _require = arg0;
const items = [closure_12];
const stateFromStores = _require(566).useStateFromStores(items, () => outer1_12.quests);
const items1 = [arg0, stateFromStores, useGetOrFetchApplicationForConsoleQuests(Array.from(stateFromStores.values()))];
const memo = React.useMemo(() => {
const result = callback(outer1_2[22]).filterQuestsForSocialEntrypoints(stateFromStores, outer1_15);
const obj = callback(outer1_2[22]);
return callback(outer1_2[36]).getQuestsFromActivities(result, callback);
}, items1);
let tmp2 = null;
if (!useIsQuestExpired(memo)) {
tmp2 = memo;
}
return tmp2;
};
export const useQuestCollectibles = function useQuestCollectibles(config) {
let obj = require(9420) /* getCollectiblesQuestReward */;
const result = obj.hasCollectiblesQuestReward(config);
const defaultReward = require(9425) /* getQuestUrl */.getDefaultReward(config);
const obj2 = require(9425) /* getQuestUrl */;
const fetchCollectiblesProduct = require(7983) /* useFetchCollectiblesProduct */.useFetchCollectiblesProduct(defaultReward.skuId);
const product = fetchCollectiblesProduct.product;
obj = { hasQuestCollectibles: result };
let first;
if (null != product) {
const items = product.items;
if (null != items) {
first = items[0];
}
}
obj.avatarDecoration = first;
obj.isFetching = fetchCollectiblesProduct.isFetching;
return obj;
};
export const useQuestPreviewActions = function useQuestPreviewActions(id) {
let closure_0 = id;
let items = [id];
return React.useMemo(() => ({
handleComplete() {
return callback(outer2_2[15]).completeQuestPreview(outer1_0);
},
handleProgress(random) {
return callback(outer2_2[15]).completeQuestPreview(outer1_0, random);
},
handleResetStatusClick() {
return callback(outer2_2[15]).resetQuestPreviewStatus(outer1_0);
},
handleResetDismissibilityClick() {
return callback(outer2_2[15]).resetQuestDismissibilityStatus(outer1_0);
},
handleOverridePreviewClick(placement) {
return callback(outer2_2[15]).overrideQuestForPlacement(placement, outer1_0);
},
handleResetHasBeenSeenClick(ContextMenu, arg1) {
const items = [outer1_0];
return callback(outer2_2[15]).markAdContentUnseen(callback(outer2_2[39]).AdCreativeType.QUEST, items);
}
}), items);
};
export { useConnectedAccounts };
export const useManuallyStartConsoleQuest = function useManuallyStartConsoleQuest(questId) {
questId = questId.questId;
const preview = questId.preview;
const beforeRequest = questId.beforeRequest;
const afterRequest = questId.afterRequest;
const tmp2 = first(React.useState(false), 2);
first = tmp2[0];
React = tmp2[1];
let obj = questId(beforeRequest[13]);
const items = [closure_8];
const stateFromStores = obj.useStateFromStores(items, () => outer1_8.getAccounts());
const tmp5 = useConsoleQuestUIStore((clearErrorHintsByType) => clearErrorHintsByType.clearErrorHintsByType);
let closure_6 = tmp5;
const items1 = [questId];
const callback = React.useCallback((arg0) => {
const state = outer1_11.getState();
return state.setErrorHints(questId, arg0);
}, items1);
const items2 = [stateFromStores, tmp5, questId];
const effect = React.useEffect(() => {
tmp5(questId, questId(beforeRequest[40]).QuestConsoleStartError.EXPIRED_CREDENTIAL);
}, items2);
obj = { startConsoleQuest: React.useCallback(afterRequest(tmp), items3), startingConsoleQuest: first };
// CreateGeneratorClosureLongIndex (0x67)
items3 = [first, beforeRequest, afterRequest, preview, questId, callback];
return obj;
};
export { useWaitingForConsoleConnection };
export const useQuestHowToHelpArticle = function useQuestHowToHelpArticle() {
const tmp = useConnectedAccounts();
let obj = importDefault(1921);
const articleURL = obj.getArticleURL(constants6.QUEST_HOW_TO_PLAYSTATION);
const articleURL1 = importDefault(1921).getArticleURL(constants6.QUEST_HOW_TO_XBOX);
const intl = require(1212) /* getSystemLocale */.intl;
const formatResult = intl.format(require(1212) /* getSystemLocale */.t.beN4DG, { psHelpdeskArticle: articleURL, xboxHelpdeskArticle: articleURL1 });
const intl2 = require(1212) /* getSystemLocale */.intl;
obj = {};
let tmp7 = articleURL1;
if (tmp.playstationAccounts.length > 0) {
tmp7 = articleURL;
}
obj.helpdeskArticle = tmp7;
obj = {};
const obj2 = importDefault(1921);
if (tmp.xboxAccounts.length <= 0) {
let tmp9 = formatResult;
if (!tmp2) {
tmp9 = formatResult;
}
obj.message = tmp9;
obj.xboxURL = articleURL1;
obj.playstationURL = articleURL;
return obj;
}
tmp9 = intl2.format(require(1212) /* getSystemLocale */.t.HVS7nh, obj);
};
export const QuestProgressState = obj;
export const useProgressState = function useProgressState(quest) {
const userStatus = quest.userStatus;
let enrolledAt;
if (null != userStatus) {
enrolledAt = userStatus.enrolledAt;
}
const userStatus2 = quest.userStatus;
let completedAt;
if (null != userStatus2) {
completedAt = userStatus2.completedAt;
}
const userStatus3 = quest.userStatus;
let claimedAt;
if (null != userStatus3) {
claimedAt = userStatus3.claimedAt;
}
if (tmp6) {
let IN_PROGRESS = obj.CLAIMED;
} else if (tmp4) {
IN_PROGRESS = obj.COMPLETED;
} else {
if (tmp7) {
if (tmp2) {
IN_PROGRESS = obj.IN_PROGRESS;
}
}
IN_PROGRESS = tmp2 ? tmp8.ACCEPTED : tmp8.UNACCEPTED;
}
return IN_PROGRESS;
};
export const useQuestCompletionDetails = function useQuestCompletionDetails(quest) {
let flag = arg1;
if (arg1 === undefined) {
flag = false;
}
let obj = require(566) /* initialize */;
const items = [closure_6];
const stateFromStores = obj.useStateFromStores(items, () => outer1_6.locale);
let percentComplete = useQuestTaskDetails(quest).percentComplete;
const tmp2 = useThirdPartyTaskDetails(quest);
if (null != tmp2) {
percentComplete = tmp2.percentComplete;
}
obj = { completedRatio: percentComplete, percentComplete: 100 * percentComplete };
if (null != tmp2) {
if (!flag) {
let progress;
if (null != tmp2) {
progress = tmp2.progress;
}
let target;
if (null != tmp2) {
target = tmp2.target;
}
const _HermesInternal = HermesInternal;
let combined = "" + progress + "/" + target;
}
obj.completedRatioDisplay = combined;
return obj;
}
combined = require(1827) /* shortenAndLocalizeNumber */.formatPercent(stateFromStores, percentComplete, { roundingMode: "floor" });
};
export { useSelectedTaskPlatform };
export { useTaskPlatformScreen };
export const useQuestWarningTips = function useQuestWarningTips(userStatus) {
const tmp2 = useQuestTaskDetails(userStatus);
userStatus = userStatus.userStatus;
let enrolledAt;
const tmp = useThirdPartyTaskDetails(userStatus);
if (null != userStatus) {
enrolledAt = userStatus.enrolledAt;
}
let tmp5 = null != enrolledAt;
const userStatus2 = userStatus.userStatus;
let completedAt;
if (null != userStatus2) {
completedAt = userStatus2.completedAt;
}
const DESKTOP = require(4984) /* set */.FirstPartyQuestTaskTypesSets.DESKTOP;
let tmp8 = DESKTOP.has(tmp2.taskType) && tmp2.percentComplete > 0;
let tmp9 = 0 === tmp2.percentComplete;
if (tmp5) {
tmp5 = !tmp7;
}
if (tmp5) {
tmp5 = !tmp3;
}
if (tmp5) {
tmp5 = null == tmp;
}
if (tmp5) {
if (!tmp8) {
if (tmp9) {
tmp9 = callback(useTaskPlatformScreen(userStatus, tmp2), 1)[0] === require(4980) /* QuestsVisibleMessagesChangedSource */.TaskPlatformScreen.DESKTOP;
}
tmp8 = tmp9;
}
tmp5 = tmp8;
}
tmp3 = useIsQuestExpired(userStatus);
tmp7 = null != completedAt;
let tmp12 = require(477) /* set */.isWeb() && tmp5;
if (tmp12) {
tmp12 = !require(10436) /* supportedConsoles */.isQuestSupportedOnWeb(userStatus);
const obj2 = require(10436) /* supportedConsoles */;
}
const items = [];
const obj = require(477) /* set */;
let isMacResult = require(477) /* set */.isMac();
if (isMacResult) {
isMacResult = tmp2.taskType === require(4984) /* set */.FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP;
}
if (isMacResult) {
isMacResult = tmp5;
}
if (isMacResult) {
const intl = require(1212) /* getSystemLocale */.intl;
items.push(intl.string(require(1212) /* getSystemLocale */.t.MFGxFM));
}
if (tmp12) {
const intl2 = require(1212) /* getSystemLocale */.intl;
items.push(intl2.string(require(1212) /* getSystemLocale */.t.BV6xDm));
}
return items;
};
export const useQuest = function useQuest(arg0) {
const items = [closure_12];
const stateFromStores = require(566) /* initialize */.useStateFromStores(items, () => outer1_12.quests);
const value = stateFromStores.get(arg0);
let tmp2 = null;
if (null != value) {
tmp2 = value;
}
return tmp2;
};
export const useNonNullableQuest = function useNonNullableQuest(questId, callback) {
const _require = questId;
let closure_1 = callback;
let items = [closure_12];
const items1 = [questId];
const stateFromStores = _require(566).useStateFromStores(items, () => outer1_12.getQuest(closure_0), items1);
let tmp2 = null;
if (null != stateFromStores) {
tmp2 = stateFromStores;
}
const dependencyMap = tmp2;
const items2 = [tmp2, questId, callback];
const effect = React.useEffect(() => {
if (null == tmp2) {
const quests = outer1_12.quests;
const items = [];
HermesBuiltin.arraySpread(quests.keys(), 0);
let obj = questId(tmp2[20]);
const _Error = Error;
const _HermesInternal = HermesInternal;
const error = new Error("Quest unexpectedly missing from store: " + questId);
obj = {};
obj = { source: "useNonNullableQuest" };
obj.tags = obj;
const obj1 = { questId, storeQuestIds: items, storeSize: items.length, isFetchingCurrentQuests: outer1_12.isFetchingCurrentQuests, lastFetchedCurrentQuests: outer1_12.lastFetchedCurrentQuests };
obj.extra = obj1;
const result = obj.captureQuestsException(error, obj);
if (null != callback) {
tmp2 = callback();
}
}
}, items2);
return tmp2;
};
export const useQuestBarOrDockModeChangeTracking = function useQuestBarOrDockModeChangeTracking(mode) {
mode = mode.mode;
const questContent = mode.questContent;
const sourceQuestContent = mode.sourceQuestContent;
const questId = mode.questId;
let set = React.useRef(null);
const items = [questId, questContent, mode, sourceQuestContent];
const effect = React.useEffect(() => {
let tmp = null != questId;
if (tmp) {
tmp = ref.current !== mode;
}
if (tmp) {
let obj = mode(sourceQuestContent[44]);
obj = { mode, prevMode: ref.current, questContent, questId, sourceQuestContent };
const result = obj.trackQuestBarOrDockModeChange(obj);
ref.current = mode;
}
}, items);
const items1 = [questId, questContent, sourceQuestContent];
const effect1 = React.useEffect(() => null != questId ? (() => {
let obj = mode(sourceQuestContent[44]);
obj = { mode: null, prevMode: outer1_4.current, questContent: outer1_1, questId: outer1_3, sourceQuestContent: outer1_2 };
const result = obj.trackQuestBarOrDockModeChange(obj);
}) : undefined, items1);
};
export const useCosponsoredLogotypeAsset = function useCosponsoredLogotypeAsset(arg0, arg1) {
const _require = arg0;
const importDefault = arg1;
const items = [closure_12];
const items1 = [arg0];
stateFromStores = _require(stateFromStores[13]).useStateFromStores(items, () => outer1_12.getQuest(closure_0), items1);
const tmp2 = importDefault(stateFromStores[45])();
let _isNativeReflectConstruct = tmp2;
const items2 = [tmp2, arg1, stateFromStores];
return React.useMemo(() => {
if (null == stateFromStores) {
return null;
} else {
if (null != closure_1) {
let tmp5 = closure_1;
} else {
tmp5 = callback(stateFromStores[46]).isThemeDark(_isNativeReflectConstruct) ? tmp4.DARK : tmp4.LIGHT;
const obj = callback(stateFromStores[46]);
}
return callback(stateFromStores[47]).getQuestAsset(stateFromStores, callback(stateFromStores[47]).QuestAssetType.COSPONSOR_LOGO_TYPE, tmp5);
}
}, items2);
};
export const useClaimedCollectibleRewardMessage = function useClaimedCollectibleRewardMessage(config) {
let obj = require(566) /* initialize */;
const items = [closure_9];
const stateFromStores = obj.useStateFromStores(items, () => outer1_9.getCurrentUser());
let obj1 = require(9420) /* getCollectiblesQuestReward */;
const defaultRewardName = obj1.getDefaultRewardName(config, stateFromStores);
let obj2 = require(9420) /* getCollectiblesQuestReward */;
const collectibleQuestRewardDuration = obj2.getCollectibleQuestRewardDuration(config);
let obj3 = require(9420) /* getCollectiblesQuestReward */;
const collectibleQuestRewardExtendableExpirationDate = obj3.getCollectibleQuestRewardExtendableExpirationDate(config);
let obj4 = require(9420) /* getCollectiblesQuestReward */;
const result = obj4.isCollectibleQuestRewardPermanentWithPremiumSubscription(config);
const result1 = require(9420) /* getCollectiblesQuestReward */.isCollectibleQuestRewardPremiumExtendable(config);
const obj6 = require(9420) /* getCollectiblesQuestReward */;
const isPremiumResult = require(3777) /* _createForOfIteratorHelperLoose */.isPremium(stateFromStores, PremiumTypes.TIER_2);
if (null == collectibleQuestRewardDuration) {
const intl2 = require(1212) /* getSystemLocale */.intl;
obj = { decorationName: defaultRewardName };
return intl2.formatToPlainString(require(1212) /* getSystemLocale */.t.l9uXL8, obj);
} else {
const intl3 = require(1212) /* getSystemLocale */.intl;
obj = { rewardName: defaultRewardName };
const intl4 = require(1212) /* getSystemLocale */.intl;
obj1 = { rewardName: defaultRewardName, expirationDate: collectibleQuestRewardExtendableExpirationDate };
const formatToPlainStringResult = intl3.formatToPlainString(require(1212) /* getSystemLocale */.t.o97tNn, obj);
const intl5 = require(1212) /* getSystemLocale */.intl;
obj2 = { rewardName: defaultRewardName, duration: collectibleQuestRewardDuration };
let formatToPlainStringResult2 = intl5.formatToPlainString(require(1212) /* getSystemLocale */.t.ie4YK0, obj2);
const intl6 = require(1212) /* getSystemLocale */.intl;
obj3 = { duration: collectibleQuestRewardDuration, rewardName: defaultRewardName };
let formatToPlainStringResult3 = intl6.formatToPlainString(require(1212) /* getSystemLocale */.t.yCpc0U, obj3);
if (result1) {
if (result) {
if (isPremiumResult) {
formatToPlainStringResult2 = formatToPlainStringResult;
}
formatToPlainStringResult3 = formatToPlainStringResult2;
} else if (isPremiumResult) {
formatToPlainStringResult3 = formatToPlainStringResult1;
}
} else {
const intl = require(1212) /* getSystemLocale */.intl;
obj4 = { duration: collectibleQuestRewardDuration, decorationName: defaultRewardName };
return intl.formatToPlainString(require(1212) /* getSystemLocale */.t.tTlItm, obj4);
}
formatToPlainStringResult1 = intl4.formatToPlainString(require(1212) /* getSystemLocale */.t.PkyRZo, obj1);
}
};
export const useLaunchInGameActivityQuest = function useLaunchInGameActivityQuest(quest) {
let obj = require(5955) /* _createForOfIteratorHelperLoose */;
obj = {};
const activityApplicationId = obj.getActivityApplicationId(quest);
obj.launchInGameActivity = importDefault(10442)({ applicationId: activityApplicationId });
return obj;
};
export { useIsPreviewerOnAnyQuest };
export const useShouldShowPreviewToolTab = function useShouldShowPreviewToolTab() {
return useIsPreviewerOnAnyQuest();
};
export const useShouldShowQuestsActivityPanelItem = function useShouldShowQuestsActivityPanelItem(userStatus) {
userStatus = undefined;
if (null != userStatus) {
userStatus = userStatus.userStatus;
}
let isDismissedResult = null != userStatus;
if (isDismissedResult) {
isDismissedResult = require(5930) /* _createForOfIteratorHelperLoose */.isDismissed(userStatus.userStatus, require(4980) /* QuestsVisibleMessagesChangedSource */.QuestContent.ACTIVITY_PANEL);
const obj = require(5930) /* _createForOfIteratorHelperLoose */;
}
let tmp6 = null;
if (null != userStatus) {
tmp6 = userStatus;
}
let claimedAt;
if (null != userStatus) {
userStatus = userStatus.userStatus;
if (null != userStatus) {
claimedAt = userStatus.claimedAt;
}
}
const tmp5 = useIsQuestExpired;
const tmp5Result = useIsQuestExpired(tmp6);
const tmp9 = null != claimedAt;
const items = [closure_12];
const stateFromStores = require(566) /* initialize */.useStateFromStores(items, () => null != outer1_12.questEnrollmentBlockedUntil, []);
if (!isDismissedResult) {
isDismissedResult = tmp5Result;
}
if (!isDismissedResult) {
isDismissedResult = tmp9;
}
if (!isDismissedResult) {
isDismissedResult = stateFromStores;
}
return !isDismissedResult;
};
export const useQuestsWithPreviewAccess = function useQuestsWithPreviewAccess() {
let items = [closure_12];
stateFromStoresArray = stateFromStoresArray(566).useStateFromStoresArray(items, () => {
const quests = outer1_12.quests;
const items = [...quests.values()];
return items;
});
const items1 = [stateFromStoresArray];
return React.useMemo(() => stateFromStoresArray.filter((preview) => preview.preview), items1);
};
export const useQuestHomeFilterOptions = function useQuestHomeFilterOptions() {
let closure_0 = closure_17;
const items = [closure_17];
return React.useMemo(() => closure_0.map((arg0) => {
let tmp;
let tmp2;
[tmp, tmp2] = arg0;
const obj = { heading: callback(outer2_2[37]).getFilterGroupHeadingText(tmp), options: tmp2 };
return obj;
}), items);
};
export const useQuestHomeSortOptions = function useQuestHomeSortOptions() {
return React.useMemo(() => {
const keys = Object.keys(outer1_16);
return keys.map((arg0) => {
const obj = { label: outer2_0(outer2_2[37]).getSortMethodText(outer2_16[arg0]), value: outer2_16[arg0] };
return obj;
});
}, []);
};
export const useQuestHomeSortingFilteringAnalytics = function useQuestHomeSortingFilteringAnalytics(selectedSortMethod) {
selectedSortMethod = selectedSortMethod.selectedSortMethod;
const selectedFilters = selectedSortMethod.selectedFilters;
const numQuestsVisible = selectedSortMethod.numQuestsVisible;
let _isNativeReflectConstruct = React.useRef(null);
let set = React.useRef(null);
const items = [selectedSortMethod];
const effect = React.useEffect(() => {
let obj = selectedFilters(numQuestsVisible[50]);
obj = { sort_method: selectedSortMethod, previous_sort_method: ref.current };
obj.track(outer1_25.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);
let obj = selectedFilters(numQuestsVisible[50]);
obj = { filters: mapped };
let current = ref2.current;
if (null == current) {
current = [];
}
obj.previous_filters = current;
obj.num_quests_visible = numQuestsVisible;
obj.track(outer1_25.QUEST_HOME_FILTERS_CHANGED, obj);
ref2.current = mapped;
}, items1);
};
export const useShouldShowQuestPreviewOverrides = function useShouldShowQuestPreviewOverrides(quest) {
let preview = React.useMemo(() => {
const currentUser = outer1_9.getCurrentUser();
let isStaffResult;
if (null != currentUser) {
isStaffResult = currentUser.isStaff();
}
return true === isStaffResult;
}, []);
if (!preview) {
preview = quest.preview;
}
return preview;
};
export { useQuestHomeHeroShelf };
export const useFetchQuestHomeBounties = function useFetchQuestHomeBounties(location) {
let isFetching;
let questHomeBounties;
let obj = location;
if (location === undefined) {
obj = {};
}
const previewAdCreativeIds = obj.previewAdCreativeIds;
let showBounties;
let enabled;
let c3;
let callback;
const bountiesExperience = previewAdCreativeIds(enabled[52]).useBountiesExperience(constants2.QUEST_HOME_MOBILE);
showBounties = bountiesExperience.showBounties;
const BountyStaleRefreshQuestHomeExperiment = previewAdCreativeIds(enabled[27]).BountyStaleRefreshQuestHomeExperiment;
obj = { location: constants2.QUEST_HOME_MOBILE };
enabled = BountyStaleRefreshQuestHomeExperiment.useConfig(obj).enabled;
const AdPlacement = previewAdCreativeIds(enabled[19]).AdPlacement;
const tmp2 = bountiesExperience.verticalScrollEnabled ? AdPlacement.VIDEO_MODAL_MOBILE : AdPlacement.QUEST_HOME_MOBILE_CAROUSEL;
c3 = tmp2;
const tmp3 = callback(React.useState(showBounties), 2);
let first = tmp3[0];
callback = tmp3[1];
const obj2 = previewAdCreativeIds(enabled[52]);
const items = [_createForOfIteratorHelperLoose];
const stateFromStoresObject = previewAdCreativeIds(enabled[13]).useStateFromStoresObject(items, () => ({ isFetching: outer1_10.isFetchingQuestHomeBounties, questHomeBounties: outer1_10.questHomeBounties }));
const items1 = [showBounties, enabled, previewAdCreativeIds, tmp2];
({ isFetching, questHomeBounties } = stateFromStoresObject);
const effect = React.useEffect(() => {
function loadBounties() {
return _loadBounties(...arguments);
}
function _loadBounties() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = loadBounties(tmp);
return obj(...arguments);
}
if (c1) {
let c0 = false;
c1 = 0;
const bounties = loadBounties();
if (interval) {
const _window = window;
interval = window.setInterval(() => {
if (Date.now() - c1 > outer2_34) {
loadBounties();
}
}, outer1_35);
return () => {
let c0 = true;
window.clearInterval(closure_2);
};
} else {
return () => {
let c0 = true;
};
}
}
}, items1);
obj = {};
if (showBounties) {
obj.questHomeBounties = questHomeBounties;
if (!first) {
first = isFetching;
}
obj.isLoading = first;
let tmp7 = obj;
} else {
obj.questHomeBounties = [];
obj.isLoading = false;
tmp7 = obj;
}
return tmp7;
};
export const useQuestHomeBounties = function useQuestHomeBounties() {
const items = [_createForOfIteratorHelperLoose];
return require(566) /* initialize */.useStateFromStoresObject(items, () => ({ questHomeBounties: outer1_10.questHomeBounties, isFetching: outer1_10.isFetchingQuestHomeBounties }));
};
export const useQuestBarImpressionSurvey = function useQuestBarImpressionSurvey(quest) {
const _require = quest;
let enrolledAt;
const DropsOptedOut = _require(3804).DropsOptedOut;
const setting = DropsOptedOut.useSetting();
const userStatus = quest.userStatus;
if (null != userStatus) {
enrolledAt = userStatus.enrolledAt;
}
const dependencyMap = tmp3;
const items = [setting, null != enrolledAt, quest.id];
return React.useCallback(() => {
if (!tmp3) {
let tmp4;
let fireSurveyAction = quest(tmp3[55]).SurveyActionTypes;
tmp4 = quest(tmp3[56]);
fireSurveyAction = tmp4.fireSurveyAction;
const obj = { quest_id: quest.id };
fireSurveyAction(setting ? fireSurveyAction.AD_IMPRESSION_QUEST_BAR_OPT_OUT : fireSurveyAction.AD_IMPRESSION_QUEST_BAR_OPT_IN, obj);
const tmp5 = setting ? fireSurveyAction.AD_IMPRESSION_QUEST_BAR_OPT_OUT : fireSurveyAction.AD_IMPRESSION_QUEST_BAR_OPT_IN;
}
}, items);
};