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

376 lines
14 KiB
TypeScript
Raw Normal View History

2026-08-05 07:35:12 +00:00
// Module ID: 14210
// Function ID: 14211
2026-07-20 16:05:17 +00:00
// Name: useIsMobileQuestDockRenderedBase
2026-08-05 07:35:12 +00:00
// Dependencies: [5, 19, 3948, 4292, 7054, 5113, 10351, 505, 14211, 7069, 589, 5116, 7052, 14234, 7082, 9648, 4106, 7534, 10346, 10347, 10358, 7077, 10481, 7075, 10503, 5596, 10482, 10866, 2]
2026-07-20 16:05:17 +00:00
// Exports: useHasWatchVideoOnMobileTasks, useIsMobileQuestDockVisibleToUser, useMobileActivityQuest, useMobileQuestDock, useMobileQuestDockHeight, useQuestDockHeroAsset, useQuestGameLogotypeAssetUrl
2026-08-05 07:35:12 +00:00
// Module 14210 (useIsMobileQuestDockRenderedBase)
2026-07-23 10:11:24 +00:00
import closure_3 from "QuestsExperimentLocations";
2026-07-31 08:44:05 +00:00
import getIsEligibleForQuests from "getIsEligibleForQuests";
2026-07-29 08:29:29 +00:00
import setContent from "setContent";
import addApplication from "addApplication";
import initializeState from "initializeState";
2026-07-23 10:11:24 +00:00
import QuestsExperimentLocations from "QuestsExperimentLocations";
import { CAPTCHA_MODAL_KEY } from "CAPTCHA_SERVE_VOLUME_DISTRIBUTION_AGGREGATION_WINDOW_MS";
import { ThemeTypes } from "sum";
2026-07-29 08:29:29 +00:00
let c9;
let metroImportAll;
2026-07-23 10:11:24 +00:00
const require = arg1;
2026-07-31 08:44:05 +00:00
function useIsMobileQuestDockRenderedBase(deliveredQuest) {
2026-08-05 07:35:12 +00:00
const tmp2 = importDefault(7534)();
2026-07-29 08:29:29 +00:00
const items = [initializeState];
2026-07-20 16:05:17 +00:00
let userStatus;
2026-07-29 08:29:29 +00:00
const stateFromStores = require(589) /* initialize */.useStateFromStores(items, () => null != questPreviewOverride.getQuestPreviewOverride(callback(table[11]).QuestContent.QUEST_BAR_MOBILE), []);
2026-07-31 08:44:05 +00:00
if (deliveredQuest != null) {
userStatus = deliveredQuest.userStatus;
2026-07-20 16:05:17 +00:00
}
let isDismissedResult = null != userStatus;
if (isDismissedResult) {
2026-08-05 07:35:12 +00:00
let tmp3Result = tmp3(7052);
isDismissedResult = tmp3Result.isDismissed(deliveredQuest.userStatus, tmp3(5116).QuestContent.QUEST_BAR_MOBILE);
2026-07-20 16:05:17 +00:00
}
let claimedAt;
2026-07-31 08:44:05 +00:00
if (deliveredQuest != null) {
userStatus = deliveredQuest.userStatus;
2026-07-29 08:29:29 +00:00
if (userStatus != null) {
2026-07-20 16:05:17 +00:00
claimedAt = userStatus.claimedAt;
}
}
2026-08-05 07:35:12 +00:00
tmp3Result = tmp3(10346);
2026-07-31 08:44:05 +00:00
const isQuestExpired = tmp3Result.useIsQuestExpired(deliveredQuest);
2026-07-29 08:29:29 +00:00
const obj = require(589) /* initialize */;
2026-08-05 07:35:12 +00:00
const isEligibleForQuests = require(10347) /* getIsEligibleForQuests */.getIsEligibleForQuests();
2026-07-20 16:05:17 +00:00
if (stateFromStores) {
2026-07-29 08:29:29 +00:00
if (!tmp8) {
2026-07-31 08:44:05 +00:00
let tmp11 = null != deliveredQuest && !tmp2;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return tmp11;
2026-07-20 16:05:17 +00:00
}
2026-07-31 08:44:05 +00:00
tmp11 = null != deliveredQuest && isEligibleForQuests && !isQuestExpired && null == claimedAt && !isDismissedResult && !tmp2;
2026-07-20 16:05:17 +00:00
}
function useIsMobileQuestDockRendered() {
2026-08-05 07:35:12 +00:00
const obj = importDefault(7069);
2026-07-29 08:29:29 +00:00
const items = [initializeState];
2026-08-05 07:35:12 +00:00
let stateFromStores = stateFromStores2(589).useStateFromStores(items, () => questPreviewOverride.getQuestPreviewOverride(stateFromStores2(5116).QuestContent.QUEST_BAR_MOBILE), []);
2026-07-29 08:29:29 +00:00
const obj2 = stateFromStores2(589);
const items1 = [initializeState];
let stateFromStores1 = stateFromStores2(589).useStateFromStores(items1, () => {
2026-07-20 16:05:17 +00:00
let questToDeliverForPlacement;
let quests;
2026-07-29 08:29:29 +00:00
({ quests, questToDeliverForPlacement } = initializeState);
2026-08-05 07:35:12 +00:00
let questForPlacement = stateFromStores2(7052).getQuestForPlacement(quests, questToDeliverForPlacement, stateFromStores2(5116).AdPlacement.MOBILE_HOME_DOCK_AREA);
2026-07-29 08:29:29 +00:00
if (questForPlacement == null) {
questForPlacement = null;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return questForPlacement;
2026-07-20 16:05:17 +00:00
});
2026-07-29 08:29:29 +00:00
const obj3 = stateFromStores2(589);
const items2 = [initializeState];
stateFromStores2 = stateFromStores2(589).useStateFromStores(items2, () => {
const questAdDecisionByPlacement = questPreviewOverride.questAdDecisionByPlacement;
2026-08-05 07:35:12 +00:00
let value = questAdDecisionByPlacement.get(stateFromStores2(5116).AdPlacement.MOBILE_HOME_DOCK_AREA);
2026-07-29 08:29:29 +00:00
if (value == null) {
value = null;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return value;
2026-07-20 16:05:17 +00:00
});
2026-07-29 08:29:29 +00:00
const obj4 = stateFromStores2(589);
const items3 = [initializeState];
2026-07-20 16:05:17 +00:00
const items4 = [stateFromStores2];
2026-07-29 08:29:29 +00:00
if (stateFromStores == null) {
2026-07-20 16:05:17 +00:00
if (obj.useConfig({ location: "QuestMobileDock" }).enableNewRequestBehavior) {
stateFromStores1 = obj5.useStateFromStores(items3, () => {
let questId;
2026-07-29 08:29:29 +00:00
if (stateFromStores2 != null) {
questId = tmp.questId;
2026-07-20 16:05:17 +00:00
}
let tmp3 = null;
if (null != questId) {
2026-07-23 10:11:24 +00:00
const quests = outer1_7.quests;
2026-07-29 08:29:29 +00:00
let value = quests.get(tmp.questId);
if (value == null) {
value = null;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
tmp3 = value;
2026-07-20 16:05:17 +00:00
}
return tmp3;
}, items4);
}
stateFromStores = stateFromStores1;
}
return useIsMobileQuestDockRenderedBase(stateFromStores);
}
2026-07-29 08:29:29 +00:00
({ QUEST_REWARD_CODE_CLAIM_BOTTOM_SHEET_KEY: metroImportAll, QuestVariants: c9 } = QuestsExperimentLocations);
const result = require("setContent").fileFinishedImporting("modules/quests/native/QuestHooks.native.tsx");
2026-07-20 16:05:17 +00:00
export const useMobileQuestDockHeight = function useMobileQuestDockHeight() {
const tmp = useIsMobileQuestDockRendered();
let num = 0;
if (tmp) {
num = obj.useQuestDockExternalOffset();
}
return num;
};
export const useMobileQuestDock = function useMobileQuestDock() {
2026-08-05 07:35:12 +00:00
let obj = importDefault(7069);
2026-07-29 08:29:29 +00:00
const items = [initializeState];
2026-08-05 07:35:12 +00:00
stateFromStores = stateFromStores(589).useStateFromStores(items, () => questPreviewOverride.getQuestPreviewOverride(stateFromStores(5116).QuestContent.QUEST_BAR_MOBILE), []);
2026-07-31 08:44:05 +00:00
const obj2 = stateFromStores(589);
2026-07-29 08:29:29 +00:00
const items1 = [initializeState];
2026-07-31 08:44:05 +00:00
let stateFromStores1 = stateFromStores(589).useStateFromStores(items1, () => {
2026-07-20 16:05:17 +00:00
let questToDeliverForPlacement;
let quests;
2026-07-29 08:29:29 +00:00
({ quests, questToDeliverForPlacement } = initializeState);
2026-08-05 07:35:12 +00:00
let questForPlacement = stateFromStores(7052).getQuestForPlacement(quests, questToDeliverForPlacement, stateFromStores(5116).AdPlacement.MOBILE_HOME_DOCK_AREA);
2026-07-29 08:29:29 +00:00
if (questForPlacement == null) {
questForPlacement = null;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return questForPlacement;
2026-07-20 16:05:17 +00:00
});
2026-07-31 08:44:05 +00:00
const obj3 = stateFromStores(589);
2026-07-29 08:29:29 +00:00
if (stateFromStores == null) {
2026-07-20 16:05:17 +00:00
if (obj.useConfig({ location: "QuestMobileDock" }).enableNewRequestBehavior) {
2026-08-05 07:35:12 +00:00
stateFromStores1 = tmp3(stateFromStores(5116).AdPlacement.MOBILE_HOME_DOCK_AREA);
2026-07-20 16:05:17 +00:00
}
stateFromStores = stateFromStores1;
}
2026-07-31 08:44:05 +00:00
const items2 = [stateFromStores];
return React.useMemo(() => {
if (null == stateFromStores) {
let obj = { type: null };
obj[0] = stateFromStores(outer1_2[14]).AdCreativeType.NO_FILL;
} else {
obj = { type: null, quest: null };
obj[0] = stateFromStores(outer1_2[14]).AdCreativeType.QUEST;
obj[1] = tmp;
}
return obj;
}, items2);
2026-07-20 16:05:17 +00:00
};
2026-07-31 08:44:05 +00:00
export const useIsMobileQuestDockVisibleToUser = function useIsMobileQuestDockVisibleToUser(deliveredQuest, isMobileQuestDockRenderedBase) {
const _require = deliveredQuest;
let tmp = isMobileQuestDockRenderedBase;
2026-08-05 07:35:12 +00:00
const isChannelFocused = _require(9648).useIsChannelFocused();
const obj = _require(9648);
const currentNavigationRouteName = _require(4106).useCurrentNavigationRouteName();
const obj2 = _require(4106);
let tmp4 = null != _require(4106).coerceGuildsRoute({ name: currentNavigationRouteName });
const obj3 = _require(4106);
2026-07-29 08:29:29 +00:00
const items = [initializeState];
let stateFromStores = _require(589).useStateFromStores(items, () => {
let isClaimingRewardResult = null != closure_0;
2026-07-20 16:05:17 +00:00
if (isClaimingRewardResult) {
2026-07-29 08:29:29 +00:00
isClaimingRewardResult = outer1_7.isClaimingReward(tmp.id);
2026-07-20 16:05:17 +00:00
}
return isClaimingRewardResult;
});
2026-07-29 08:29:29 +00:00
const obj4 = _require(589);
const items1 = [setContent];
const stateFromStores1 = _require(589).useStateFromStores(items1, () => {
key = key.getKey();
let tmp2 = key === closure_10;
2026-07-20 16:05:17 +00:00
if (!tmp2) {
2026-07-29 08:29:29 +00:00
tmp2 = key === closure_8;
2026-07-20 16:05:17 +00:00
}
return tmp2;
});
2026-07-31 08:44:05 +00:00
if (isMobileQuestDockRenderedBase) {
2026-07-20 16:05:17 +00:00
tmp = !isChannelFocused;
}
if (tmp) {
if (!tmp4) {
if (stateFromStores) {
stateFromStores = stateFromStores1;
}
tmp4 = stateFromStores;
}
tmp = tmp4;
}
return tmp;
};
export { useIsMobileQuestDockRenderedBase };
export { useIsMobileQuestDockRendered };
2026-07-31 08:44:05 +00:00
export const useQuestGameLogotypeAssetUrl = function useQuestGameLogotypeAssetUrl(questCreative) {
let closure_0 = questCreative;
const items = [questCreative];
return React.useMemo(() => questCreative(outer1_2[20]).getQuestAsset(questCreative, questCreative(outer1_2[20]).QuestAssetType.LOGO_TYPE, outer1_11.DARK).url, items);
2026-07-20 16:05:17 +00:00
};
2026-07-31 08:44:05 +00:00
export const useQuestDockHeroAsset = function useQuestDockHeroAsset(questCreative) {
let closure_0 = questCreative;
const items = [questCreative];
2026-07-23 10:11:24 +00:00
return React.useMemo(() => {
2026-07-31 08:44:05 +00:00
const questAsset = questCreative(outer1_2[20]).getQuestAsset(questCreative, questCreative(outer1_2[20]).QuestAssetType.QUEST_BAR_HERO);
2026-07-29 08:29:29 +00:00
let videoAsset = null;
2026-07-31 08:44:05 +00:00
if (null != questCreative.config.assets.questBarHeroVideo) {
videoAsset = tmp(tmp2[20]).resolveAsset(tmp3.id, tmp3.config.assets.questBarHeroVideo);
const tmpResult = tmp(tmp2[20]);
2026-07-20 16:05:17 +00:00
}
if (questAsset.isAnimated) {
2026-07-31 08:44:05 +00:00
let staticUrl = str.replace(tmp(tmp2[20]).EXTENSION_RE, ".png");
2026-07-20 16:05:17 +00:00
} else {
2026-07-29 08:29:29 +00:00
staticUrl = str;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return { staticUrl, videoAsset };
2026-07-20 16:05:17 +00:00
}, items);
};
export const useHasWatchVideoOnMobileTasks = function useHasWatchVideoOnMobileTasks(config) {
2026-07-23 10:11:24 +00:00
let closure_0 = config;
2026-07-20 16:05:17 +00:00
const items = [config];
return React.useMemo(() => {
2026-07-31 08:44:05 +00:00
let obj = config(outer1_2[21]);
2026-07-23 10:11:24 +00:00
obj = { config };
2026-07-20 16:05:17 +00:00
return obj.hasWatchVideoOnMobileTasks(obj);
}, items);
};
export const useMobileActivityQuest = function useMobileActivityQuest(quest) {
2026-07-23 10:11:24 +00:00
const _require = quest;
2026-07-31 08:44:05 +00:00
let obj = _require(stateFromStores[21]);
2026-07-20 16:05:17 +00:00
const activityApplicationId = obj.getActivityApplicationId(quest);
2026-07-29 08:29:29 +00:00
let items = [addApplication];
2026-07-23 10:11:24 +00:00
stateFromStores = _require(stateFromStores[10]).useStateFromStores(items, () => outer1_6.getApplication(activityApplicationId));
2026-07-29 08:29:29 +00:00
let obj2 = _require(stateFromStores[10]);
const tmp = stateFromStores;
2026-07-31 08:44:05 +00:00
const canLaunchFrameResult = _require(stateFromStores[22]).canLaunchFrame(stateFromStores);
2026-07-29 08:29:29 +00:00
const callback = canLaunchFrameResult;
2026-07-31 08:44:05 +00:00
let obj3 = _require(stateFromStores[22]);
let canLaunchActivityResult = _require(stateFromStores[23]).canLaunchActivity(quest);
2026-07-20 16:05:17 +00:00
if (canLaunchActivityResult) {
2026-07-23 10:11:24 +00:00
let features = quest.config.features;
2026-07-20 16:05:17 +00:00
canLaunchActivityResult = features.includes(constants.MOBILE_ACTIVITY_QUEST);
}
if (canLaunchActivityResult) {
let supported_platforms;
2026-07-29 08:29:29 +00:00
if (stateFromStores != null) {
2026-07-20 16:05:17 +00:00
const embeddedActivityConfig = stateFromStores.embeddedActivityConfig;
2026-07-29 08:29:29 +00:00
if (embeddedActivityConfig != null) {
2026-07-20 16:05:17 +00:00
supported_platforms = embeddedActivityConfig.supported_platforms;
}
}
2026-07-31 08:44:05 +00:00
canLaunchActivityResult = activityApplicationId(tmp[24])(supported_platforms);
const tmp8 = activityApplicationId(tmp[24]);
2026-07-20 16:05:17 +00:00
}
if (canLaunchActivityResult) {
2026-07-29 08:29:29 +00:00
let tmp11 = canLaunchFrameResult;
2026-07-20 16:05:17 +00:00
if (!canLaunchFrameResult) {
let id;
2026-07-29 08:29:29 +00:00
if (stateFromStores != null) {
let bot = stateFromStores.bot;
if (bot != null) {
2026-07-20 16:05:17 +00:00
id = bot.id;
}
}
2026-07-29 08:29:29 +00:00
tmp11 = null != id;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
canLaunchActivityResult = tmp11;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
const React = canLaunchActivityResult;
2026-07-20 16:05:17 +00:00
const items1 = [stateFromStores, activityApplicationId, quest.config.features];
2026-07-29 08:29:29 +00:00
const effect = React.useEffect(() => {
2026-07-20 16:05:17 +00:00
let hasItem = null == stateFromStores;
if (hasItem) {
hasItem = null != activityApplicationId;
}
if (hasItem) {
2026-07-23 10:11:24 +00:00
const features = quest.config.features;
hasItem = features.includes(outer1_9.MOBILE_ACTIVITY_QUEST);
2026-07-20 16:05:17 +00:00
}
if (hasItem) {
const items = [activityApplicationId];
2026-07-31 08:44:05 +00:00
const applications = activityApplicationId(stateFromStores[25]).fetchApplications(items, false);
const obj = activityApplicationId(stateFromStores[25]);
2026-07-20 16:05:17 +00:00
}
}, items1);
const items2 = [canLaunchFrameResult, stateFromStores, canLaunchActivityResult];
2026-07-29 08:29:29 +00:00
obj = {
isMobileActivityQuest: canLaunchActivityResult,
questApplication: stateFromStores,
launchMobileActivity: React.useCallback(callback(function*() {
if (v0 === 2) {
v0 = 3;
HermesBuiltin.throwTypeError();
} else if (tmp3 === 3) {
if (arg0 === 1) {
throw arg1;
} else if (arg0 === 2) {
let obj = { value: null, done: true };
obj[0] = arg1;
return obj;
} else {
2026-08-05 07:35:12 +00:00
return { value: "T", done: null };
2026-07-29 08:29:29 +00:00
}
} else {
try {
v0 = 2;
if (0 === v02) {
if (arg0 === 1) {
v0 = 3;
throw arg1;
} else if (arg0 === 2) {
v0 = 3;
obj = { value: null, done: true };
obj[0] = arg1;
return obj;
} else if (outer1_4) {
if (outer1_3) {
2026-07-31 08:44:05 +00:00
let obj5 = v02(outer1_2[26]);
2026-07-29 08:29:29 +00:00
const obj1 = { applicationId: null };
obj1[0] = outer1_2.id;
v02 = 1;
v0 = 1;
let obj2 = { value: null, done: false };
obj2[0] = obj5.launchFrame(obj1);
return obj2;
} else {
let id;
if (outer1_2 != null) {
const bot = tmp6.bot;
if (bot != null) {
id = bot.id;
}
}
if (null != id) {
2026-07-31 08:44:05 +00:00
obj2 = v0(outer1_2[27]);
2026-07-29 08:29:29 +00:00
const obj3 = { appId: null, botId: null, analyticsLocations: null };
obj3[0] = tmp6.id;
obj3[1] = tmp6.bot.id;
obj3[2] = [];
v02 = 2;
v0 = 1;
const obj4 = { value: null, done: false };
obj4[0] = obj2.launchActivityInBotDM(obj3);
return obj4;
}
}
}
} else if (1 === tmp4) {
if (arg0 === 1) {
v0 = 3;
throw arg1;
} else if (arg0 === 2) {
v0 = 3;
obj5 = { value: null, done: true };
obj5[0] = arg1;
return obj5;
}
} else if (arg0 === 1) {
v0 = 3;
throw arg1;
} else if (arg0 === 2) {
v0 = 3;
obj = { value: null, done: true };
obj[0] = arg1;
return obj;
}
v0 = 3;
2026-08-05 07:35:12 +00:00
return { value: "T", done: null };
2026-07-29 08:29:29 +00:00
} catch (tmp14) {
v0 = tmp;
throw tmp14;
}
}
}), items2)
};
2026-07-20 16:05:17 +00:00
return obj;
};