decord/beta/source/modules/quests/native/QuestHooks.native.tsx
2026-10-01 14:13:23 +00:00

425 lines
16 KiB
TypeScript

// Module ID: 14620
// Function ID: 14621
// Name: QuestHooks
// Dependencies: [5, 19, 4521, 5063, 7115, 7116, 5756, 5185, 8500, 1085, 14621, 504, 5759, 14647, 7114, 7112, 5763, 9549, 4692, 14631, 6364, 10681, 10682, 10689, 7137, 6583, 8783, 7135, 8823, 6584, 8760, 10740, 2]
// Exports: useHasWatchVideoOnMobileTasks, useIsMobileQuestDockRendered, useIsMobileQuestDockVisibleToUser, useMobileActivityQuest, useMobileQuestDock, useMobileQuestDockHeight, useQuestDockHeroAsset, useQuestGameLogotypeAssetUrl
// Module 14620 (QuestHooks)
import Constants from "Constants" /* 1085 */;
import CaptchaConstants from "CaptchaConstants" /* 5185 */;
import QuestTypes from "QuestTypes" /* 5759 */;
import AdCreativeType from "AdCreativeType" /* 5763 */;
import ApplicationActionCreatorsDefault from "ApplicationActionCreators" /* 6584 */;
import QuestTaskUtils from "QuestTaskUtils" /* 7137 */;
import FramesConstants from "FramesConstants" /* 8500 */;
import AssetUtils from "AssetUtils" /* 10689 */;
import QuestDockHooks from "QuestDockHooks" /* 14621 */;
import useQuestForPlacement from "useQuestForPlacement" /* 14647 */;
import _asyncToGenerator from "_asyncToGenerator" /* 5 */;
import react_mod from "react" /* 19 */;
import ActionSheetStore_mod from "ActionSheetStore" /* 4521 */;
import ApplicationStore from "ApplicationStore" /* 5063 */;
import BountyStore from "BountyStore" /* 7115 */;
import QuestStore from "QuestStore" /* 7116 */;
import QuestConstants from "QuestConstants" /* 5756 */;
import size from "module_2" /* 2 */;
const require = globalThis.__r;
let _require, key;
let c10;
let c9;
function useDeliveredDockCreative() {
let deliveredBounty;
let deliveredQuestId;
let questPreviewOverride;
const tmp = deliveredQuestId;
let tmp2 = deliveredBounty;
let obj = deliveredQuestId(deliveredBounty[11]);
const items = [QuestStore];
let stateFromStores = obj.useStateFromStores(items, () => questPreviewOverride.getQuestPreviewOverride(deliveredQuestId(deliveredBounty[12]).QuestContent.QUEST_BAR_MOBILE), []);
let obj2 = deliveredQuestId(deliveredBounty[13]);
const adDecisionForPlacement = obj2.useAdDecisionForPlacement(deliveredQuestId(deliveredBounty[12]).AdPlacement.MOBILE_HOME_DOCK_AREA);
let creative;
const getDeliveredQuestId = deliveredQuestId(deliveredBounty[14]).getDeliveredQuestId;
const tmp3 = QuestStore;
const tmp6 = deliveredQuestId(deliveredBounty[14]);
if (adDecisionForPlacement != null) {
creative = adDecisionForPlacement.creative;
}
deliveredQuestId = getDeliveredQuestId(creative);
const items1 = [tmp3];
const items2 = [deliveredQuestId];
const tmpResult = tmp(tmp2[11]);
const stateFromStores1 = tmpResult.useStateFromStores(items1, () => {
let tmp2 = null;
if (null != deliveredQuestId) {
const quests = QuestStore.quests;
let value = quests.get(tmp);
if (value == null) {
value = null;
}
tmp2 = value;
}
return tmp2;
}, items2);
let tmp10 = null;
if (null != stateFromStores1) {
tmp10 = null;
const tmpResult3 = tmp(tmp2[15]);
if (!tmpResult3.isQuestExpired(stateFromStores1)) {
tmp10 = stateFromStores1;
}
}
if (stateFromStores == null) {
stateFromStores = tmp10;
}
let creative1;
const getDeliveredBounty = tmp(tmp2[14]).getDeliveredBounty;
tmp(tmp2[14]);
if (adDecisionForPlacement != null) {
creative1 = adDecisionForPlacement.creative;
}
deliveredBounty = getDeliveredBounty(creative1);
const items3 = [stateFromStores, deliveredBounty];
return react.useMemo(() => {
let obj;
if (null != stateFromStores) {
obj = { type: AdCreativeType.AdCreativeType.QUEST, quest: tmp };
const obj2 = { type: AdCreativeType.AdCreativeType.QUEST, quest: tmp };
} else if (null != deliveredBounty) {
obj = { type: AdCreativeType.AdCreativeType.BOUNTY, bounty: tmp2 };
const obj3 = { type: AdCreativeType.AdCreativeType.BOUNTY, bounty: tmp2 };
} else {
obj = { type: AdCreativeType.AdCreativeType.NO_FILL };
}
return obj;
}, items3);
}
function useIsMobileQuestDockRenderedBase(mobileQuestDock) {
let deliveredAdCreativeId;
let questPreviewOverride;
_require = mobileQuestDock;
let tmp = _require;
const obj = require("QuestDockCreativeContext");
const deliveredQuest = obj.getDeliveredQuest(mobileQuestDock);
const tmp4 = deliveredAdCreativeId(6364)();
const items = [QuestStore];
let userStatus1;
const obj2 = require("get initialized");
const stateFromStores = obj2.useStateFromStores(items, () => null != questPreviewOverride.getQuestPreviewOverride(mobileQuestDock(dependencyMap[12]).QuestContent.QUEST_BAR_MOBILE), []);
const tmp5 = QuestStore;
if (deliveredQuest != null) {
userStatus1 = deliveredQuest.userStatus;
}
let isDismissedResult = null != userStatus1;
if (isDismissedResult) {
const tmpResult = tmp(7112);
isDismissedResult = tmpResult.isDismissed(deliveredQuest.userStatus, tmp(5759).QuestContent.QUEST_BAR_MOBILE);
}
let claimedAt;
if (deliveredQuest != null) {
const userStatus = deliveredQuest.userStatus;
if (userStatus != null) {
claimedAt = userStatus.claimedAt;
}
}
const tmpResult6 = tmp(10681);
const isQuestExpired = tmpResult6.useIsQuestExpired(deliveredQuest);
const tmpResult7 = tmp(10682);
let isEligibleForQuests = tmpResult7.getIsEligibleForQuests();
const tmpResult8 = tmp(14631);
deliveredAdCreativeId = tmpResult8.getDeliveredAdCreativeId(mobileQuestDock);
const items1 = [tmp5];
const items2 = [deliveredAdCreativeId];
const tmpResult9 = tmp(504);
const stateFromStores1 = tmpResult9.useStateFromStores(items1, () => {
const isAdContentDismissedResult = null != deliveredAdCreativeId && QuestStore.isAdContentDismissed(tmp);
return isAdContentDismissedResult;
}, items2);
const items3 = [BountyStore];
const items4 = [mobileQuestDock];
const type = mobileQuestDock.type;
const tmpResult10 = tmp(504);
const stateFromStores2 = tmpResult10.useStateFromStores(items3, () => {
let isBountyCompletedResult = mobileQuestDock.type === AdCreativeType.AdCreativeType.BOUNTY;
const tmp = mobileQuestDock;
if (isBountyCompletedResult) {
isBountyCompletedResult = BountyStore.isBountyCompleted(tmp.bounty.id);
}
return isBountyCompletedResult;
}, items4);
if (tmp(5763).AdCreativeType.NO_FILL === type) {
return false;
} else if (tmp(5763).AdCreativeType.BOUNTY === type) {
if (isEligibleForQuests) {
isEligibleForQuests = !stateFromStores1;
}
if (isEligibleForQuests) {
isEligibleForQuests = !stateFromStores2;
}
if (isEligibleForQuests) {
isEligibleForQuests = !tmp4;
}
return isEligibleForQuests;
} else if (tmp(5763).AdCreativeType.QUEST === type) {
if (stateFromStores) {
let tmp16;
if (null == claimedAt) {
tmp16 = null != deliveredQuest && !tmp4;
}
return tmp16;
}
tmp16 = null != deliveredQuest && isEligibleForQuests && !isQuestExpired && null == claimedAt && !isDismissedResult && !tmp4;
}
}
let react = react_mod;
let ActionSheetStore = ActionSheetStore_mod;
({ QUEST_REWARD_CODE_CLAIM_BOTTOM_SHEET_KEY: c9, QuestVariants: c10 } = QuestConstants);
const CAPTCHA_MODAL_KEY = CaptchaConstants.CAPTCHA_MODAL_KEY;
const MAIN_SURFACE = FramesConstants.MAIN_SURFACE;
const ThemeTypes = Constants.ThemeTypes;
const result = size.fileFinishedImporting("modules/quests/native/QuestHooks.native.tsx");
export const useMobileQuestDockHeight = function useMobileQuestDockHeight() {
let num = 0;
const tmp = useIsMobileQuestDockRenderedBase(useDeliveredDockCreative());
const obj = QuestDockHooks;
if (tmp) {
num = obj.useQuestDockExternalOffset();
}
return num;
};
export const useMobileQuestDock = function useMobileQuestDock() {
const obj = useQuestForPlacement;
const adRefreshLoop = obj.useAdRefreshLoop(QuestTypes.AdPlacement.MOBILE_HOME_DOCK_AREA);
return useDeliveredDockCreative();
};
export const useIsMobileQuestDockVisibleToUser = function useIsMobileQuestDockVisibleToUser(mobileQuestDock, isMobileQuestDockRenderedBase) {
_require = mobileQuestDock;
let tmp = isMobileQuestDockRenderedBase;
const obj = require("isChannelFocused");
const isChannelFocused = obj.useIsChannelFocused();
const obj2 = require("NavigationRouteUtils");
const currentNavigationRouteName = obj2.useCurrentNavigationRouteName();
const obj3 = require("NavigationRouteUtils");
let tmp4 = null != obj3.coerceGuildsRoute({ name: currentNavigationRouteName });
const items = [QuestStore];
const obj4 = require("get initialized");
let stateFromStores = obj4.useStateFromStores(items, () => {
const type = mobileQuestDock.type;
const tmp = mobileQuestDock;
if (AdCreativeType.AdCreativeType.QUEST === type) {
return QuestStore.isClaimingReward(tmp.quest.id);
} else {
return false;
}
});
const items1 = [ActionSheetStore];
const obj5 = require("get initialized");
const stateFromStores1 = obj5.useStateFromStores(items1, () => {
key = key.getKey();
return key === CAPTCHA_MODAL_KEY || key === closure_1_9;
});
if (isMobileQuestDockRenderedBase) {
tmp = !isChannelFocused;
}
if (tmp) {
if (!tmp4) {
if (stateFromStores) {
stateFromStores = stateFromStores1;
}
tmp4 = stateFromStores;
}
tmp = tmp4;
}
return tmp;
};
export { useIsMobileQuestDockRenderedBase };
export const useIsMobileQuestDockRendered = function useIsMobileQuestDockRendered() {
return useIsMobileQuestDockRenderedBase(useDeliveredDockCreative());
};
export const useQuestGameLogotypeAssetUrl = function useQuestGameLogotypeAssetUrl(quest) {
let closure_0 = quest;
const items = [quest];
return react.useMemo(() => {
const obj = AssetUtils;
return obj.getQuestAsset(quest, AssetUtils.QuestAssetType.LOGO_TYPE, ThemeTypes.DARK).url;
}, items);
};
export const useQuestDockHeroAsset = function useQuestDockHeroAsset(quest) {
const items = [quest];
return react.useMemo(() => {
let staticUrl;
const obj = AssetUtils;
const questAsset = obj.getQuestAsset(quest, AssetUtils.QuestAssetType.QUEST_BAR_HERO);
let videoAsset = null;
if (null != quest.config.assets.questBarHeroVideo) {
const tmpResult = AssetUtils;
videoAsset = tmpResult.resolveAsset(tmp3.id, tmp3.config.assets.questBarHeroVideo);
}
if (questAsset.isAnimated) {
staticUrl = str.replace(tmp(10689).EXTENSION_RE, ".png");
} else {
staticUrl = str;
}
return { staticUrl, videoAsset };
}, items);
};
export const useHasWatchVideoOnMobileTasks = function useHasWatchVideoOnMobileTasks(config) {
const items = [config];
return react.useMemo(() => {
const obj = QuestTaskUtils;
const obj2 = { config };
return obj.hasWatchVideoOnMobileTasks(obj2);
}, items);
};
export const useMobileActivityQuest = function useMobileActivityQuest(quest) {
let analyticsLocations;
_require = quest;
let obj = require("QuestTaskUtils");
let activityApplicationId = obj.getActivityApplicationId(quest);
const tmp3 = activityApplicationId;
const tmp = analyticsLocations;
analyticsLocations = activityApplicationId(analyticsLocations[25])().analyticsLocations;
let obj2 = require("get initialized");
let items = [ApplicationStore];
const stateFromStores = obj2.useStateFromStores(items, () => ApplicationStore.getApplication(activityApplicationId));
let obj3 = require("canLaunchFrame");
const canLaunchFrameResult = obj3.canLaunchFrame(stateFromStores);
react = canLaunchFrameResult;
let obj4 = require("utils/QuestUtils");
let canLaunchActivityResult = obj4.canLaunchActivity(quest);
if (canLaunchActivityResult) {
let features = quest.config.features;
canLaunchActivityResult = features.includes(constants.MOBILE_ACTIVITY_QUEST);
}
if (canLaunchActivityResult) {
let supported_platforms;
const tmp3Result = tmp3(tmp[28]);
if (stateFromStores != null) {
const embeddedActivityConfig = stateFromStores.embeddedActivityConfig;
if (embeddedActivityConfig != null) {
supported_platforms = embeddedActivityConfig.supported_platforms;
}
}
canLaunchActivityResult = tmp3Result(supported_platforms);
}
if (canLaunchActivityResult) {
let tmp11 = canLaunchFrameResult;
if (!tmp11) {
let id;
if (stateFromStores != null) {
let bot = stateFromStores.bot;
if (bot != null) {
id = bot.id;
}
}
tmp11 = null != id;
}
canLaunchActivityResult = tmp11;
}
ActionSheetStore = canLaunchActivityResult;
const items1 = [stateFromStores, activityApplicationId, quest.config.features];
const effect = react.useEffect(() => {
let hasItem = null == stateFromStores && null != activityApplicationId;
if (hasItem) {
const features = quest.config.features;
hasItem = features.includes(constants.MOBILE_ACTIVITY_QUEST);
}
if (hasItem) {
const items = [activityApplicationId];
const obj = ApplicationActionCreatorsDefault;
const applications = obj.fetchApplications(items, false);
}
}, items1);
const items2 = [canLaunchFrameResult, stateFromStores, canLaunchActivityResult, analyticsLocations];
let obj5 = {
isMobileActivityQuest: canLaunchActivityResult,
questApplication: stateFromStores,
launchMobileActivity: react.useCallback(stateFromStores(function*(arg0, value) {
let obj7;
let v2;
let v3;
if (quest === 2) {
quest = 3;
throw new TypeError("Generator functions may not be called on executing generators");
} else if (tmp2 === 3) {
if (arg0 === 1) {
throw value;
} else if (arg0 === 2) {
const obj2 = { value, done: true };
return obj2;
} else {
return { value: "HermesInternal", done: null };
}
} else {
try {
quest = 2;
if (0 === activityApplicationId) {
if (arg0 === 1) {
quest = 3;
throw value;
} else if (arg0 === 2) {
quest = 3;
const obj4 = { value, done: true };
return obj4;
} else {
const tmp19 = ActionSheetStore;
if (tmp19) {
const tmp4 = react;
if (tmp4) {
const obj5 = { applicationId: stateFromStores.id, surface, analyticsContext: obj7 };
obj7 = { isStart: true, analyticsLocations };
const obj6 = activityApplicationId(analyticsLocations[30]);
activityApplicationId = 1;
quest = 1;
const obj8 = { value: obj6.launchFrame(obj5), done: false };
return obj8;
} else {
let id;
if (stateFromStores != null) {
const bot = tmp5.bot;
if (bot != null) {
id = bot.id;
}
}
if (null != id) {
const obj9 = { appId: stateFromStores.id, botId: stateFromStores.bot.id, analyticsLocations: [] };
activityApplicationId = 2;
const obj3 = quest(analyticsLocations[31]);
quest = 1;
const obj10 = { value: obj3.launchActivityInBotDM(obj9), done: false };
return obj10;
}
}
}
}
} else if (1 === tmp3) {
if (arg0 === 1) {
quest = 3;
throw value;
} else if (arg0 === 2) {
quest = 3;
const obj11 = { value, done: true };
return obj11;
}
} else if (arg0 === 1) {
quest = 3;
throw value;
} else if (arg0 === 2) {
quest = 3;
const obj = { value, done: true };
return obj;
}
quest = 3;
return { value: "HermesInternal", done: null };
} catch (tmp15) {
quest = 3;
throw tmp15;
}
}
}), items2)
};
return obj5;
};