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

394 lines
15 KiB
TypeScript
Raw Normal View History

// Module ID: 15094
// Function ID: 15095
2026-08-07 06:50:47 +00:00
// Name: useDeliveredDockCreative
// Dependencies: [5, 19, 4251, 4788, 7703, 5444, 11284, 9516, 1085, 15095, 504, 5447, 15119, 7701, 7699, 5451, 10094, 4417, 15105, 6945, 11488, 11489, 11290, 7724, 7162, 9511, 7722, 9534, 7163, 9512, 11524, 2]
2026-08-07 06:50:47 +00:00
// Exports: useHasWatchVideoOnMobileTasks, useIsMobileQuestDockRendered, useIsMobileQuestDockVisibleToUser, useMobileActivityQuest, useMobileQuestDock, useMobileQuestDockHeight, useQuestDockHeroAsset, useQuestGameLogotypeAssetUrl
2026-07-20 16:05:17 +00:00
// Module 15094 (useDeliveredDockCreative)
import QuestsVisibleMessagesChangedSource from "QuestsVisibleMessagesChangedSource" /* 5447 */;
import useIsWindowLargeDefault from "useIsWindowLarge" /* 6945 */;
import maybeRefreshAd from "maybeRefreshAd" /* 15119 */;
2026-08-24 06:08:38 +00:00
import closure_3 from "asyncGeneratorStep" /* 5 */;
import closure_4 from "noop" /* 19 */;
import closure_5 from "setContent" /* 4251 */;
import closure_6 from "addApplication" /* 4788 */;
import closure_7 from "initializeState" /* 7703 */;
import QuestsExperimentLocations from "QuestsExperimentLocations" /* 5444 */;
import { CAPTCHA_MODAL_KEY } from "CAPTCHA_SERVE_VOLUME_DISTRIBUTION_AGGREGATION_WINDOW_MS" /* 11284 */;
import { MAIN_SURFACE } from "FrameLayoutModes" /* 9516 */;
import { ThemeTypes } from "sum" /* 1085 */;
2026-07-23 10:11:24 +00:00
2026-08-24 06:08:38 +00:00
require = arg1;
2026-08-07 06:50:47 +00:00
function useDeliveredDockCreative() {
2026-08-24 06:08:38 +00:00
const items = [closure_7];
2026-08-13 17:34:28 +00:00
let stateFromStores = deliveredQuestId(deliveredBounty[10]).useStateFromStores(items, () => questPreviewOverride.getQuestPreviewOverride(deliveredQuestId(deliveredBounty[11]).QuestContent.QUEST_BAR_MOBILE), []);
let obj = deliveredQuestId(deliveredBounty[10]);
2026-08-24 06:08:38 +00:00
const tmp3 = closure_7;
2026-08-13 17:34:28 +00:00
const adDecisionForPlacement = deliveredQuestId(deliveredBounty[12]).useAdDecisionForPlacement(deliveredQuestId(deliveredBounty[11]).AdPlacement.MOBILE_HOME_DOCK_AREA);
const obj2 = deliveredQuestId(deliveredBounty[12]);
let creative;
if (adDecisionForPlacement != null) {
creative = adDecisionForPlacement.creative;
}
deliveredQuestId = deliveredQuestId(deliveredBounty[13]).getDeliveredQuestId(creative);
let tmpResult = tmp(tmp2[10]);
const items1 = [tmp3];
const items2 = [deliveredQuestId];
const stateFromStores1 = tmpResult.useStateFromStores(items1, () => {
let tmp2 = null;
if (null != deliveredQuestId) {
2026-08-24 06:08:38 +00:00
const quests = closure_1_7.quests;
2026-08-13 17:34:28 +00:00
let value = quests.get(tmp);
2026-08-13 07:00:46 +00:00
if (value == null) {
value = null;
2026-08-07 06:50:47 +00:00
}
2026-08-13 17:34:28 +00:00
tmp2 = value;
2026-08-13 07:00:46 +00:00
}
2026-08-13 17:34:28 +00:00
return tmp2;
2026-08-13 07:00:46 +00:00
}, items2);
2026-08-13 17:34:28 +00:00
let tmp9 = null;
2026-08-07 06:50:47 +00:00
if (null != stateFromStores1) {
2026-08-13 17:34:28 +00:00
tmpResult = tmp(tmp2[14]);
tmp9 = null;
2026-08-13 07:00:46 +00:00
if (!tmpResult.isQuestExpired(stateFromStores1)) {
2026-08-13 17:34:28 +00:00
tmp9 = stateFromStores1;
2026-08-07 06:50:47 +00:00
}
}
if (stateFromStores == null) {
2026-08-13 17:34:28 +00:00
stateFromStores = tmp9;
2026-08-07 06:50:47 +00:00
}
2026-08-13 17:34:28 +00:00
const obj3 = deliveredQuestId(deliveredBounty[13]);
let creative1;
if (adDecisionForPlacement != null) {
creative1 = adDecisionForPlacement.creative;
}
deliveredBounty = deliveredQuestId(deliveredBounty[13]).getDeliveredBounty(creative1);
const items3 = [stateFromStores, deliveredBounty];
2026-08-07 06:50:47 +00:00
return React.useMemo(() => {
2026-08-13 17:34:28 +00:00
if (null != stateFromStores) {
let obj = { type: null, quest: null };
obj[0] = deliveredQuestId(deliveredBounty[15]).AdCreativeType.QUEST;
2026-08-07 06:50:47 +00:00
obj[1] = tmp;
2026-08-13 17:34:28 +00:00
} else if (null != deliveredBounty) {
obj = { type: null, bounty: null };
obj[0] = deliveredQuestId(deliveredBounty[15]).AdCreativeType.BOUNTY;
obj[1] = tmp2;
} else {
obj = { type: null };
obj[0] = deliveredQuestId(deliveredBounty[15]).AdCreativeType.NO_FILL;
2026-08-07 06:50:47 +00:00
}
return obj;
2026-08-13 07:00:46 +00:00
}, items3);
2026-08-07 06:50:47 +00:00
}
function useIsMobileQuestDockRenderedBase(mobileQuestDock) {
const deliveredQuest = deliveredAdCreativeId(15105).getDeliveredQuest(mobileQuestDock);
2026-08-24 06:08:38 +00:00
const tmp4 = useIsWindowLargeDefault();
const obj = deliveredAdCreativeId(15105);
2026-08-24 06:08:38 +00:00
const items = [closure_7];
2026-07-20 16:05:17 +00:00
let userStatus;
const stateFromStores = deliveredAdCreativeId(504).useStateFromStores(items, () => null != questPreviewOverride.getQuestPreviewOverride(deliveredAdCreativeId(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) {
let tmpResult = tmp(7699);
isDismissedResult = tmpResult.isDismissed(deliveredQuest.userStatus, tmp(5447).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;
}
}
tmpResult = tmp(11488);
2026-08-07 06:50:47 +00:00
const isQuestExpired = tmpResult.useIsQuestExpired(deliveredQuest);
const obj2 = deliveredAdCreativeId(504);
2026-08-31 15:47:37 +00:00
const tmp5 = closure_7;
let isEligibleForQuests = deliveredAdCreativeId(11489).getIsEligibleForQuests();
const tmpResult1 = deliveredAdCreativeId(11489);
deliveredAdCreativeId = deliveredAdCreativeId(15105).getDeliveredAdCreativeId(mobileQuestDock);
const tmpResult2 = deliveredAdCreativeId(15105);
2026-08-31 15:47:37 +00:00
const items1 = [tmp5];
const items2 = [deliveredAdCreativeId];
2026-08-07 06:50:47 +00:00
const type = mobileQuestDock.type;
const stateFromStores1 = deliveredAdCreativeId(504).useStateFromStores(items1, () => {
2026-08-31 15:47:37 +00:00
let isAdContentDismissedResult = null != deliveredAdCreativeId;
if (isAdContentDismissedResult) {
isAdContentDismissedResult = closure_1_7.isAdContentDismissed(tmp);
}
return isAdContentDismissedResult;
}, items2);
if (deliveredAdCreativeId(5451).AdCreativeType.NO_FILL === type) {
2026-08-31 15:47:37 +00:00
return false;
} else if (tmp(5451).AdCreativeType.BOUNTY === type) {
2026-08-31 15:47:37 +00:00
if (isEligibleForQuests) {
isEligibleForQuests = !stateFromStores1;
}
if (isEligibleForQuests) {
isEligibleForQuests = !tmp4;
}
return isEligibleForQuests;
} else if (tmp(5451).AdCreativeType.QUEST === type) {
2026-08-31 15:47:37 +00:00
if (stateFromStores) {
if (!tmp10) {
let tmp15 = null != deliveredQuest && !tmp4;
2026-08-07 06:50:47 +00:00
}
2026-08-31 15:47:37 +00:00
return tmp15;
2026-07-20 16:05:17 +00:00
}
2026-08-31 15:47:37 +00:00
tmp15 = null != deliveredQuest && isEligibleForQuests && !isQuestExpired && !tmp10 && !isDismissedResult && !tmp4;
const tmp16 = null != deliveredQuest && isEligibleForQuests && !isQuestExpired && !tmp10 && !isDismissedResult && !tmp4;
2026-07-20 16:05:17 +00:00
}
}
2026-08-24 06:08:38 +00:00
({ QUEST_REWARD_CODE_CLAIM_BOTTOM_SHEET_KEY: closure_8, QuestVariants: c9 } = QuestsExperimentLocations);
const result = require("set").fileFinishedImporting("modules/quests/native/QuestHooks.native.tsx");
2026-07-20 16:05:17 +00:00
export const useMobileQuestDockHeight = function useMobileQuestDockHeight() {
2026-08-07 06:50:47 +00:00
const tmp = useIsMobileQuestDockRenderedBase(useDeliveredDockCreative());
2026-07-20 16:05:17 +00:00
let num = 0;
if (tmp) {
num = obj.useQuestDockExternalOffset();
}
return num;
};
export const useMobileQuestDock = function useMobileQuestDock() {
2026-08-24 06:08:38 +00:00
const adRefreshLoop = maybeRefreshAd.useAdRefreshLoop(QuestsVisibleMessagesChangedSource.AdPlacement.MOBILE_HOME_DOCK_AREA);
2026-08-07 06:50:47 +00:00
return useDeliveredDockCreative();
2026-07-20 16:05:17 +00:00
};
2026-08-07 06:50:47 +00:00
export const useIsMobileQuestDockVisibleToUser = function useIsMobileQuestDockVisibleToUser(mobileQuestDock, isMobileQuestDockRenderedBase) {
const _require = mobileQuestDock;
2026-07-31 08:44:05 +00:00
let tmp = isMobileQuestDockRenderedBase;
const isChannelFocused = _require(10094).useIsChannelFocused();
const obj = _require(10094);
const currentNavigationRouteName = _require(4417).useCurrentNavigationRouteName();
const obj2 = _require(4417);
let tmp4 = null != _require(4417).coerceGuildsRoute({ name: currentNavigationRouteName });
const obj3 = _require(4417);
2026-08-24 06:08:38 +00:00
const items = [closure_7];
let stateFromStores = _require(504).useStateFromStores(items, () => {
2026-08-07 06:50:47 +00:00
const type = mobileQuestDock.type;
2026-08-24 06:08:38 +00:00
if (mobileQuestDock(closure_1_2[15]).AdCreativeType.QUEST === type) {
return closure_1_7.isClaimingReward(tmp.quest.id);
2026-08-07 06:50:47 +00:00
} else {
return false;
2026-07-20 16:05:17 +00:00
}
2026-08-07 06:50:47 +00:00
tmp = mobileQuestDock;
2026-07-20 16:05:17 +00:00
});
const obj4 = _require(504);
2026-08-24 06:08:38 +00:00
const items1 = [closure_5];
const stateFromStores1 = _require(504).useStateFromStores(items1, () => {
2026-07-29 08:29:29 +00:00
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 };
2026-08-07 06:50:47 +00:00
export const useIsMobileQuestDockRendered = function useIsMobileQuestDockRendered() {
return useIsMobileQuestDockRenderedBase(useDeliveredDockCreative());
};
2026-09-01 10:26:29 +00:00
export const useQuestGameLogotypeAssetUrl = function useQuestGameLogotypeAssetUrl(quest) {
closure_0 = quest;
const items = [quest];
return React.useMemo(() => quest(closure_1_2[22]).getQuestAsset(quest, quest(closure_1_2[22]).QuestAssetType.LOGO_TYPE, closure_1_12.DARK).url, items);
2026-07-20 16:05:17 +00:00
};
2026-09-01 10:26:29 +00:00
export const useQuestDockHeroAsset = function useQuestDockHeroAsset(quest) {
closure_0 = quest;
const items = [quest];
2026-07-23 10:11:24 +00:00
return React.useMemo(() => {
2026-09-01 10:26:29 +00:00
const questAsset = quest(closure_1_2[22]).getQuestAsset(quest, quest(closure_1_2[22]).QuestAssetType.QUEST_BAR_HERO);
2026-07-29 08:29:29 +00:00
let videoAsset = null;
2026-09-01 10:26:29 +00:00
if (null != quest.config.assets.questBarHeroVideo) {
2026-08-13 17:34:28 +00:00
videoAsset = tmp(tmp2[22]).resolveAsset(tmp3.id, tmp3.config.assets.questBarHeroVideo);
const tmpResult = tmp(tmp2[22]);
2026-07-20 16:05:17 +00:00
}
if (questAsset.isAnimated) {
2026-08-13 17:34:28 +00:00
let staticUrl = str.replace(tmp(tmp2[22]).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-08-24 06:08:38 +00:00
closure_0 = config;
2026-07-20 16:05:17 +00:00
const items = [config];
return React.useMemo(() => {
2026-08-24 06:08:38 +00:00
let obj = config(closure_1_2[23]);
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;
let obj = _require(analyticsLocations[23]);
2026-07-20 16:05:17 +00:00
const activityApplicationId = obj.getActivityApplicationId(quest);
analyticsLocations = activityApplicationId(analyticsLocations[24])().analyticsLocations;
2026-08-24 06:08:38 +00:00
let items = [closure_6];
const stateFromStores = _require(analyticsLocations[10]).useStateFromStores(items, () => closure_1_6.getApplication(activityApplicationId));
let obj2 = _require(analyticsLocations[10]);
const tmp = analyticsLocations;
const tmp3 = activityApplicationId;
const canLaunchFrameResult = _require(analyticsLocations[25]).canLaunchFrame(stateFromStores);
const React = canLaunchFrameResult;
let obj3 = _require(analyticsLocations[25]);
let canLaunchActivityResult = _require(analyticsLocations[26]).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;
}
}
canLaunchActivityResult = tmp3(tmp[27])(supported_platforms);
const tmp3Result = tmp3(tmp[27]);
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
}
closure_5 = 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;
2026-08-24 06:08:38 +00:00
hasItem = features.includes(closure_1_9.MOBILE_ACTIVITY_QUEST);
2026-07-20 16:05:17 +00:00
}
if (hasItem) {
const items = [activityApplicationId];
const applications = activityApplicationId(analyticsLocations[28]).fetchApplications(items, false);
const obj = activityApplicationId(analyticsLocations[28]);
2026-07-20 16:05:17 +00:00
}
}, items1);
const items2 = [canLaunchFrameResult, stateFromStores, canLaunchActivityResult, analyticsLocations];
2026-07-29 08:29:29 +00:00
obj = {
isMobileActivityQuest: canLaunchActivityResult,
questApplication: stateFromStores,
launchMobileActivity: React.useCallback(stateFromStores(function*() {
2026-07-29 08:29:29 +00:00
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-09-01 10:26:29 +00:00
return { value: "HermesInternal", 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 (closure_1_5) {
if (closure_1_4) {
let obj5 = v02(closure_1_2[29]);
obj1 = { applicationId: null, surface: null, analyticsContext: null };
obj1[0] = closure_1_3.id;
2026-08-24 06:08:38 +00:00
obj1[1] = closure_1_11;
let obj2 = { isStart: true, analyticsLocations: null };
obj2[1] = closure_1_2;
obj1[2] = obj2;
2026-07-29 08:29:29 +00:00
v02 = 1;
v0 = 1;
const obj3 = { value: null, done: false };
obj3[0] = obj5.launchFrame(obj1);
return obj3;
2026-07-29 08:29:29 +00:00
} else {
let id;
if (closure_1_3 != null) {
2026-07-29 08:29:29 +00:00
const bot = tmp6.bot;
if (bot != null) {
id = bot.id;
}
}
if (null != id) {
obj2 = v0(closure_1_2[30]);
const obj4 = { appId: null, botId: null, analyticsLocations: null };
obj4[0] = tmp6.id;
obj4[1] = tmp6.bot.id;
obj4[2] = [];
2026-07-29 08:29:29 +00:00
v02 = 2;
v0 = 1;
obj5 = { value: null, done: false };
obj5[0] = obj2.launchActivityInBotDM(obj4);
return obj5;
2026-07-29 08:29:29 +00:00
}
}
}
} else if (1 === tmp4) {
if (arg0 === 1) {
v0 = 3;
throw arg1;
} else if (arg0 === 2) {
v0 = 3;
const obj6 = { value: null, done: true };
obj6[0] = arg1;
return obj6;
2026-07-29 08:29:29 +00:00
}
} 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-09-01 10:26:29 +00:00
return { value: "HermesInternal", done: null };
} catch (tmp16) {
2026-07-29 08:29:29 +00:00
v0 = tmp;
throw tmp16;
2026-07-29 08:29:29 +00:00
}
}
}), items2)
};
2026-07-20 16:05:17 +00:00
return obj;
};