decord/source/modules/quests/native/QuestUtils.native.tsx

351 lines
12 KiB
TypeScript
Raw Normal View History

2026-07-27 11:26:19 +00:00
// Module ID: 10898
// Function ID: 84611
2026-07-20 16:05:17 +00:00
// Name: _createForOfIteratorHelperLoose
2026-07-27 11:26:19 +00:00
// Dependencies: [5, 31, 10899, 4977, 653, 33, 4099, 10900, 1935, 10902, 9420, 10909, 10915, 5938, 9401, 4980, 3832, 1212, 9104, 9109, 10429, 5953, 5666, 3983, 6554, 477, 3828, 689, 10916, 8867, 4473, 4476, 1457, 2]
2026-07-20 16:05:17 +00:00
// Exports: dismissOverlayScreens, getPrimaryCtaIcon, handleRewardClaimThenView, isHeroVideoSupported, openDiscordQuestsFAQ, openQuestHome, openRewardDetailsBottomSheet, showQuestUnavailableAlert
2026-07-27 11:26:19 +00:00
// Module 10898 (_createForOfIteratorHelperLoose)
2026-07-23 10:11:24 +00:00
import closure_3 from "jsxProd";
import "getAlertModalItemKey";
import zustandStore from "zustandStore";
import QuestsExperimentLocations from "QuestsExperimentLocations";
import { UserSettingsSections } from "ME";
import jsxProd from "set";
let closure_10;
let closure_11;
let closure_12;
let closure_5;
let closure_6;
let closure_7;
let closure_8;
const require = arg1;
function _createForOfIteratorHelperLoose(iterable) {
let closure_0 = iterable;
iterable = "undefined" !== typeof Symbol;
if (iterable) {
2026-07-20 16:05:17 +00:00
const _Symbol = Symbol;
2026-07-23 10:11:24 +00:00
iterable = iterable[Symbol.iterator];
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if (!iterable) {
iterable = iterable[Symbol.iterator];
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if (iterable) {
const iter = iterable.call(iterable);
2026-07-20 16:05:17 +00:00
const next = iter.next;
return next.bind(iter);
} else {
const _Array = Array;
2026-07-23 10:11:24 +00:00
let tmp = iterable;
if (!Array.isArray(iterable)) {
2026-07-20 16:05:17 +00:00
let tmp2;
2026-07-23 10:11:24 +00:00
if (iterable) {
if ("string" === typeof iterable) {
tmp2 = _arrayLikeToArray(iterable, undefined);
2026-07-20 16:05:17 +00:00
} else {
const toString = {}.toString;
2026-07-23 10:11:24 +00:00
const substr = toString.call(iterable).slice(8, -1);
2026-07-20 16:05:17 +00:00
let name = substr;
if (tmp3) {
2026-07-23 10:11:24 +00:00
name = iterable.constructor.name;
2026-07-20 16:05:17 +00:00
}
if ("Map" !== name) {
if ("Set" !== name) {
if ("Arguments" === name) {
2026-07-23 10:11:24 +00:00
let arr = _arrayLikeToArray(iterable, undefined);
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/;
2026-07-20 16:05:17 +00:00
}
}
tmp2 = arr;
}
const _Array2 = Array;
2026-07-23 10:11:24 +00:00
arr = Array.from(iterable);
const callResult = toString.call(iterable);
tmp3 = "Object" === substr && iterable.constructor;
2026-07-20 16:05:17 +00:00
}
}
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) {
2026-07-23 10:11:24 +00:00
closure_0 = tmp;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
let c1 = 0;
2026-07-20 16:05:17 +00:00
return () => {
2026-07-23 10:11:24 +00:00
if (closure_1 >= length.length) {
2026-07-20 16:05:17 +00:00
let obj = { done: true };
} else {
obj = { done: false };
closure_1 = tmp3 + 1;
2026-07-23 10:11:24 +00:00
obj.value = length[+closure_1];
2026-07-20 16:05:17 +00:00
}
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 openRewardClaimBottomSheet(arg0) {
let questContent;
let questContentPosition;
let questId;
let sourceQuestContent;
({ questId, questContent, questContentPosition, sourceQuestContent } = arg0);
2026-07-27 11:26:19 +00:00
return importDefault(4099).openLazy(require(1935) /* maybeLoadBundle */(10902, dependencyMap.paths), closure_6, { questId, questContent, questContentPosition, sourceQuestContent });
2026-07-20 16:05:17 +00:00
}
function viewReward(quest) {
let onSuccess;
let product;
let questContent;
let questContentPosition;
let sourceQuestContent;
quest = quest.quest;
({ product, questContent, questContentPosition, onSuccess, sourceQuestContent } = quest);
2026-07-25 08:10:48 +00:00
let obj = require(9420) /* getCollectiblesQuestReward */;
2026-07-20 16:05:17 +00:00
if (obj.hasQuestRewardCode(quest.config)) {
obj = { questId: quest.id, questContent, questContentPosition, sourceQuestContent };
openRewardClaimBottomSheet(obj);
} else {
2026-07-25 08:10:48 +00:00
let obj1 = require(9420) /* getCollectiblesQuestReward */;
2026-07-20 16:05:17 +00:00
if (obj1.hasVirtualCurrencyReward(quest.config)) {
2026-07-27 11:26:19 +00:00
let tmp3Result = tmp3(10909);
2026-07-20 16:05:17 +00:00
obj = { quest };
const result = tmp3Result.openQuestOrbsRewardModal(obj);
} else {
2026-07-27 11:26:19 +00:00
tmp3Result = tmp3(10915);
2026-07-20 16:05:17 +00:00
obj1 = { quest, product, onSuccess };
const result1 = tmp3Result.openQuestCollectibleRewardModal(obj1);
}
}
}
function _handleRewardClaim() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback(tmp);
return obj(...arguments);
}
function _handleRewardClaimThenView() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback(tmp);
return obj(...arguments);
}
2026-07-23 10:11:24 +00:00
({ QuestsExperimentLocations: closure_5, QUEST_REWARD_CODE_CLAIM_BOTTOM_SHEET_KEY: closure_6, QUEST_REWARD_DETAILS_BOTTOM_SHEET_KEY: closure_7, QuestVariants: closure_8 } = QuestsExperimentLocations);
({ jsx: closure_10, Fragment: closure_11, jsxs: closure_12 } = jsxProd);
let result = require("zustandStore").fileFinishedImporting("modules/quests/native/QuestUtils.native.tsx");
2026-07-20 16:05:17 +00:00
export const openRewardDetailsBottomSheet = function openRewardDetailsBottomSheet(questId) {
2026-07-27 11:26:19 +00:00
return importDefault(4099).openLazy(require(1935) /* maybeLoadBundle */(10900, dependencyMap.paths), closure_7, { questId: questId.questId });
2026-07-20 16:05:17 +00:00
};
export { viewReward };
export const handleRewardClaimThenView = function handleRewardClaimThenView(arg0) {
return _handleRewardClaimThenView(...arguments);
};
export const openQuestHome = function openQuestHome(scrollToQuestId) {
scrollToQuestId = scrollToQuestId.scrollToQuestId;
let flag = scrollToQuestId.mergeExistingRoutes;
if (flag === undefined) {
flag = false;
}
let sort = scrollToQuestId.sort;
if (sort === undefined) {
sort = null;
}
let filter = scrollToQuestId.filter;
if (filter === undefined) {
filter = null;
}
2026-07-23 10:11:24 +00:00
let obj = scrollToQuestId(sort[20]);
2026-07-20 16:05:17 +00:00
if (obj.getIsEligibleForQuests()) {
obj = {};
let tmp6;
if (null != scrollToQuestId) {
tmp6 = scrollToQuestId;
}
obj.questId = tmp6;
obj.fromContent = scrollToQuestId.fromContent;
2026-07-23 10:11:24 +00:00
const result = scrollToQuestId(sort[21]).setQuestHomeUtmContext(obj);
flag(sort[22])();
2026-07-20 16:05:17 +00:00
const _setTimeout = setTimeout;
const timerId = setTimeout(() => {
let obj = scrollToQuestId(sort[23]);
const rootNavigationRef = obj.getRootNavigationRef();
if (null != rootNavigationRef) {
if (rootNavigationRef.isReady()) {
let tmp2 = null;
if (flag) {
2026-07-23 10:11:24 +00:00
tmp2 = (function findExistingQuestsRoute(rootNavigationRef) {
2026-07-20 16:05:17 +00:00
function isQuestsRoute(value) {
let tmp = "settings" === value.name;
if (tmp) {
const params = value.params;
let screen;
if (null != params) {
screen = params.screen;
}
2026-07-23 10:11:24 +00:00
tmp = screen === outer3_9.QUESTS;
2026-07-20 16:05:17 +00:00
}
return tmp;
}
const rootState = rootNavigationRef.getRootState();
if (null != rootState) {
if (rootState.routes) {
function searchRoutes(routes) {
2026-07-23 10:11:24 +00:00
const tmp = outer3_13(routes);
2026-07-20 16:05:17 +00:00
const iter = tmp();
let iter2 = iter;
if (!iter.done) {
const value = iter2.value;
while (!isQuestsRoute(value)) {
let state = value.state;
let tmp4 = tmp2;
if (null != state) {
tmp4 = tmp2;
if (state.routes) {
let tmp5 = searchRoutes;
let tmp6 = searchRoutes(value.state.routes);
tmp4 = tmp6;
if (tmp6) {
return tmp6;
}
}
}
let iter3 = tmp();
2026-07-23 10:11:24 +00:00
tmp2 = tmp4;
2026-07-20 16:05:17 +00:00
iter2 = iter3;
}
return value;
}
return null;
}
return searchRoutes(rootState.routes);
}
}
return null;
2026-07-23 10:11:24 +00:00
})(rootNavigationRef);
2026-07-20 16:05:17 +00:00
}
obj = { sort, filter };
let str = "";
if (null != scrollToQuestId) {
str = scrollToQuestId;
}
obj.scrollToQuestId = str;
2026-07-23 10:11:24 +00:00
outer1_4.setState(obj);
obj = { screen: outer1_9.QUESTS };
2026-07-20 16:05:17 +00:00
if (flag) {
if (null != tmp2) {
const obj1 = { name: "settings", key: tmp2.key, params: obj };
rootNavigationRef.navigate(obj1);
}
}
scrollToQuestId(sort[24]).openUserSettings(obj);
const obj5 = scrollToQuestId(sort[24]);
}
}
}, 1);
2026-07-23 10:11:24 +00:00
const obj2 = scrollToQuestId(sort[21]);
2026-07-20 16:05:17 +00:00
}
};
export const isHeroVideoSupported = function isHeroVideoSupported(memo) {
if (obj.isIOS()) {
let tmp2 = tmp;
} else {
tmp2 = tmp;
if (!tmp) {
tmp2 = "video/webm" === memo.mimetype;
}
}
return tmp2;
};
export const openDiscordQuestsFAQ = function openDiscordQuestsFAQ() {
2026-07-25 08:10:48 +00:00
importDefault(3828).openURL("https://support.discord.com/hc/en-us/articles/22225719947543-Discord-Quests-FAQ#h_01HVPBZR5FBM7QBFR9KDBASXP5");
2026-07-20 16:05:17 +00:00
};
export const getPrimaryCtaIcon = function getPrimaryCtaIcon(quest, arg1) {
let flag = arg1;
if (arg1 === undefined) {
flag = false;
}
2026-07-25 08:10:48 +00:00
let obj = require(5953) /* _createForOfIteratorHelperLoose */;
2026-07-20 16:05:17 +00:00
if (obj.canLaunchActivity(quest)) {
const features = quest.config.features;
if (features.includes(constants.MOBILE_ACTIVITY_QUEST)) {
obj = {};
let num = 0;
if (flag) {
2026-07-23 10:11:24 +00:00
num = importDefault(689).space.PX_4;
2026-07-20 16:05:17 +00:00
}
obj.marginRight = num;
const features2 = quest.config.features;
if (features2.includes(constants.CLOUD_GAMING_ACTIVITY)) {
obj = { size: "sm" };
obj.style = obj;
2026-07-23 10:11:24 +00:00
obj.color = importDefault(689).colors.WHITE;
2026-07-27 11:26:19 +00:00
let tmp5Result = tmp5(tmp6(10916).CloudIcon, obj);
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
const obj1 = { size: "sm", style: obj, color: importDefault(689).colors.WHITE };
2026-07-25 08:10:48 +00:00
tmp5Result = tmp5(tmp6(8867).GameControllerIcon, obj1);
2026-07-20 16:05:17 +00:00
}
return tmp5Result;
}
}
};
export const showQuestUnavailableAlert = function showQuestUnavailableAlert() {
2026-07-25 08:10:48 +00:00
let obj = require(4473) /* useAlertStore */;
2026-07-20 16:05:17 +00:00
obj = {};
2026-07-23 10:11:24 +00:00
const intl = require(1212) /* getSystemLocale */.intl;
obj.title = intl.string(require(1212) /* getSystemLocale */.t.Lhpq2P);
const intl2 = require(1212) /* getSystemLocale */.intl;
obj.content = intl2.string(require(1212) /* getSystemLocale */.t.iyF4WB);
2026-07-20 16:05:17 +00:00
obj = {};
const obj1 = {};
2026-07-23 10:11:24 +00:00
const intl3 = require(1212) /* getSystemLocale */.intl;
obj1.text = intl3.string(require(1212) /* getSystemLocale */.t.H0vjGc);
2026-07-25 08:10:48 +00:00
obj1.onPress = require(9401) /* _manuallyStartConsoleQuest */.fetchCurrentQuests;
const items = [callback2(require(4476) /* getAlertModalItemKey */.AlertActionButton, obj1), ];
2026-07-20 16:05:17 +00:00
const obj2 = {};
2026-07-23 10:11:24 +00:00
const intl4 = require(1212) /* getSystemLocale */.intl;
obj2.text = intl4.string(require(1212) /* getSystemLocale */.t["6XS10x"]);
2026-07-20 16:05:17 +00:00
obj2.variant = "secondary";
2026-07-25 08:10:48 +00:00
items[1] = callback2(require(4476) /* getAlertModalItemKey */.AlertActionButton, obj2);
2026-07-20 16:05:17 +00:00
obj.children = items;
obj.actions = callback3(closure_11, obj);
2026-07-25 08:10:48 +00:00
obj.openAlert("quest-unavailable", callback2(require(4476) /* getAlertModalItemKey */.AlertModal, obj));
2026-07-20 16:05:17 +00:00
};
export const dismissOverlayScreens = function dismissOverlayScreens() {
2026-07-25 08:10:48 +00:00
let obj = require(3983) /* getRootNavigationRef */;
2026-07-20 16:05:17 +00:00
const rootNavigationRef = obj.getRootNavigationRef();
if (null != rootNavigationRef) {
if (rootNavigationRef.isReady()) {
const rootState = rootNavigationRef.getRootState();
const routes = rootState.routes;
const found = routes.filter((name) => {
let tmp = "you" !== name.name;
if (tmp) {
tmp = "settings" !== name.name;
}
return tmp;
});
if (found.length < rootState.routes.length) {
2026-07-23 10:11:24 +00:00
const CommonActions = require(1457) /* Link */.CommonActions;
2026-07-20 16:05:17 +00:00
obj = {};
const merged = Object.assign(rootState);
obj["routes"] = found;
obj["index"] = found.length - 1;
rootNavigationRef.dispatch(CommonActions.reset(obj));
}
}
}
};