decord/source/modules/quests/native/QuestBottomSheet/QuestBottomSheet.tsx
2026-08-05 07:35:12 +00:00

533 lines
20 KiB
TypeScript

// Module ID: 14236
// Function ID: 14237
// Name: QuestBottomSheet
// Dependencies: [32, 19, 17, 7054, 5113, 21, 4255, 712, 7060, 10348, 3956, 1236, 8228, 10346, 10377, 5116, 14210, 589, 11062, 7077, 5323, 14237, 14238, 11058, 10375, 7081, 9405, 9406, 9410, 7082, 14275, 14277, 14278, 7075, 7744, 4251, 2]
// Exports: default
// Module 14236 (QuestBottomSheet)
import NonInlineConsoleConnection from "NonInlineConsoleConnection";
import importDefaultResult from "getApplicationIdsByTaskTypes";
import { useState } from "getApplicationIdsByTaskTypes";
import { View } from "initialize";
import initializeState from "initializeState";
import QuestsExperimentLocations from "QuestsExperimentLocations";
import jsxProd from "QuestBottomSheetHeader";
import createCacheKey from "createCacheKey";
let c10;
let c9;
let closure_12;
let metroImportAll;
let unpackModuleId;
const require = arg1;
function QuestBottomSheet(initialStep) {
let defibrillator;
let handleTaskSelect;
let quest;
let showMicrophone;
let sourceQuestContent;
let step;
let stepActions;
({ quest, sourceQuestContent } = initialStep);
let _require;
let obj = { quest, initialStep: initialStep.initialStep, location: constants.QUEST_HOME_MOBILE, sourceQuestContent };
const tmp3 = useEnrolledQuestContentProps(obj);
({ step, defibrillator, stepActions } = tmp3);
({ handleTaskSelect, showMicrophone } = tmp3);
let obj1 = _require(14210);
const hasWatchVideoOnMobileTasks = obj1.useHasWatchVideoOnMobileTasks(quest.config);
let obj2 = _require(7077);
const tmp = callback3();
const tmp2 = constants;
let obj3 = _require(7077);
const hasWatchVideoTasksResult = obj2.hasWatchVideoTasks(quest);
const tmp8 = callback(useState(0), 2);
_require = tmp8[1];
obj = { value: importDefaultResult.useMemo(() => ({ isInQuestBottomSheet: true }), []), children: null };
obj = { header: null, footer: null, startExpanded: true, children: null };
obj1 = { quest, step, location: constants.QUEST_HOME_MOBILE };
obj[0] = callback2(importDefault(14237), obj1);
let tmp9Result = null;
if (!isInGameQuestResult) {
if (!hasWatchVideoTasksResult) {
obj2 = { quest: null, sourceQuestContent: null, step: null, isDefibrilating: null, onLayout: null, onBack: null, onDefib: null, onConnectConsoleNext: null };
obj2[0] = quest;
obj2[1] = sourceQuestContent;
obj2[2] = step;
obj2[3] = defibrillator.isActive;
obj2[4] = function onLayout(nativeEvent) {
callback(nativeEvent.nativeEvent.layout.height);
};
obj2[5] = stepActions.onBack;
obj2[6] = defibrillator.start;
obj2[7] = stepActions.onNext;
tmp9Result = tmp9(importDefault(14238), obj2);
} else {
tmp9Result = null;
}
}
obj[1] = tmp9Result;
const items = [tmp.contentContainer, ];
let num = 0;
if (step !== obj.TASK_SELECT) {
num = tmp8[0];
}
obj3 = { style: items, children: tmp9(QuestBottomSheetContent, obj4) };
items[1] = { paddingBottom: num };
obj[3] = callback2(View, obj3);
obj[1] = callback2(_require(5323).BottomSheet, obj);
return callback2(context.Provider, obj);
}
function useEnrolledQuestContentProps(quest) {
let _location;
let questLogger;
let tmp32;
let tmp33;
quest = quest.quest;
({ location: _location, sourceQuestContent: questLogger } = quest);
let dependencyMap;
let callback;
let importDefaultResult;
let obj = quest(11058);
dependencyMap = obj.useTrackQuestContentClickedWithImpression();
let obj1 = quest(10375);
callback = obj1.useQuestImpressionId();
let obj2 = quest(10346);
const questTaskDetails = obj2.useQuestTaskDetails(quest);
const isQuestProgressing = quest(10346).useIsQuestProgressing(quest);
const obj4 = quest(10346);
let tmp6 = callback(quest(10346).useTaskPlatformScreen(quest, questTaskDetails), 3);
importDefaultResult = tmp6[2];
const obj5 = quest(10346);
questLogger = undefined;
dependencyMap = undefined;
callback = undefined;
importDefaultResult = undefined;
let first1;
let c6;
let isQuestProgressing1;
callback = undefined;
let memo1;
let memo2;
let memo3;
let hasWatchVideoOnMobileTasks1;
let isMobileActivityQuest;
function showConsoleSelect() {
return _undefined4(true);
}
function hideConsoleSelect() {
return _undefined4(false);
}
const userStatus = quest.userStatus;
let completedAt;
const hasWatchVideoOnMobileTasks = quest(14210).useHasWatchVideoOnMobileTasks(quest.config);
if (userStatus != null) {
completedAt = userStatus.completedAt;
}
let tmpResult = tmp(10346);
const xboxAndPlaystationAccounts = tmpResult.useConnectedAccounts().xboxAndPlaystationAccounts;
questLogger = xboxAndPlaystationAccounts;
let items = [quest, xboxAndPlaystationAccounts];
const memo = importDefaultResult.useMemo(() => {
const obj = quest(_undefined[14]);
return quest(_undefined[14]).supportedConsoles(quest).filter((arg0) => {
let closure_0 = arg0;
return null != closure_1.find((type) => type.type === closure_0);
});
}, items);
tmpResult = tmp(10346);
const questTaskDetails1 = tmpResult.useQuestTaskDetails(quest);
const obj6 = quest(14210);
isQuestProgressing1 = quest(10346).useIsQuestProgressing(quest);
const tmpResult1 = quest(10346);
let tmp5Result = tmp5(quest(10346).useTaskPlatformScreen(quest, questTaskDetails1), 3);
const first = tmp5Result[0];
dependencyMap = first;
callback = tmp14;
importDefaultResult = tmp15;
let tmp16 = 0 === memo.length;
if (tmp16) {
tmp16 = !tmp9;
}
if (tmp16) {
tmp16 = first === tmp(5116).TaskPlatformScreen.CONSOLE;
}
if (!tmp16) {
tmp16 = quest.initialStep === memo3.CONSOLE_CONNECT;
}
tmp5Result = tmp5(importDefaultResult.useState(tmp16), 2);
first1 = tmp5Result[0];
c6 = tmp20;
if (!isQuestProgressing1) {
isQuestProgressing1 = questTaskDetails1.progressSeconds > 0;
}
const tmpResult2 = quest(10346);
if (!tmp21) {
tmp20(true);
}
const items1 = [tmp5Result[2]];
callback = obj8.useCallback(() => {
_undefined4(false);
_undefined3(null);
}, items1);
memo1 = obj8.useMemo(() => {
const items = [{ type: memo3.TASK_STATUS, shouldShow: true }];
return items;
}, []);
const items2 = [first1, isQuestProgressing1];
memo2 = obj8.useMemo(() => {
let obj = { type: memo3.CONSOLE_CONNECT, shouldShow: first1, onNext: hideConsoleSelect };
const items = [obj, ];
obj = { type: memo3.TASK_STATUS, shouldShow: true, onBack: null };
let tmp;
if (!isQuestProgressing1) {
tmp = showConsoleSelect;
}
obj[2] = tmp;
items[1] = obj;
return items;
}, items2);
const items3 = [first, first1, isQuestProgressing1, callback];
memo3 = obj8.useMemo(() => {
let obj = { type: memo3.TASK_SELECT, shouldShow: _undefined === quest(_undefined[15]).TaskPlatformScreen.SELECT };
const items = [obj, , ];
obj = { type: memo3.CONSOLE_CONNECT, shouldShow: null, onBack: null, onNext: null };
obj[1] = _undefined === quest(_undefined[15]).TaskPlatformScreen.CONSOLE && first1;
let tmp6 = callback;
obj[2] = callback;
obj[3] = hideConsoleSelect;
items[1] = obj;
obj = { type: memo3.TASK_STATUS, shouldShow: true, onBack: null };
let tmp7;
if (!isQuestProgressing1) {
if (_undefined === quest(_undefined[15]).TaskPlatformScreen.CONSOLE) {
tmp6 = showConsoleSelect;
}
tmp7 = tmp6;
}
obj[2] = tmp7;
items[2] = obj;
return items;
}, items3);
tmp21 = 0 !== memo.length || null != completedAt || first !== quest(5116).TaskPlatformScreen.CONSOLE || first1;
hasWatchVideoOnMobileTasks1 = quest(14210).useHasWatchVideoOnMobileTasks(quest.config);
const tmpResult3 = quest(14210);
isMobileActivityQuest = quest(14210).useMobileActivityQuest(quest).isMobileActivityQuest;
const items4 = [tmp5Result[1], memo3, memo1, memo2, hasWatchVideoOnMobileTasks1, isMobileActivityQuest];
const memo4 = obj8.useMemo(() => {
let hasItem = 1 === _undefined2.length;
if (hasItem) {
hasItem = arr.includes(showConsoleSelect.DESKTOP);
}
let hasItem1 = 1 === arr.length;
if (hasItem1) {
hasItem1 = arr.includes(showConsoleSelect.CONSOLE);
}
let arr2 = memo3;
if (!hasItem) {
if (!hasWatchVideoOnMobileTasks1) {
if (!isMobileActivityQuest) {
if (hasItem1) {
arr2 = memo2;
}
}
let found = arr2.find((shouldShow) => shouldShow.shouldShow);
if (found == null) {
found = arr2.at(-1);
}
return found;
}
}
arr2 = memo1;
}, items4);
const items5 = [memo4.type, ];
let onBack;
if (memo4 != null) {
onBack = memo4.onBack;
}
obj = { onBack, onNext: null };
let onNext;
if (memo4 != null) {
onNext = memo4.onNext;
}
obj[1] = onNext;
items5[1] = obj;
const tmpResult4 = quest(14210);
questLogger = undefined;
dependencyMap = undefined;
callback = undefined;
[tmp32, tmp33] = callback(items5, 2);
const tmp5Result1 = callback(items5, 2);
obj = { quest, location: callback.QUEST_HOME_MOBILE };
questLogger = quest(7060).getQuestLogger(obj);
const tmp5Result2 = callback(first1([]), 2);
dependencyMap = tmp36;
const tmp5Result3 = callback(first1(false), 2);
callback = tmp38;
const items6 = [quest, questLogger, tmp5Result3[1], tmp5Result2[1]];
obj1 = {
errorHints: tmp5Result2[0],
isActive: tmp5Result3[0],
start: obj8.useCallback(() => {
_undefined2(true);
const result = quest(_undefined[9]).manuallyStartConsoleQuest(quest.id);
let obj = quest(_undefined[9]);
const nextPromise = result.then((errorHints) => callback(errorHints.errorHints));
result.then((errorHints) => callback(errorHints.errorHints)).catch((arg0) => {
callback([]);
logger.error("Failed to start console quest", arg0);
let obj = outer1_1(outer1_2[10]);
obj = { key: "START_DEFIBRILLATOR_ERROR", content: null, icon: null };
const intl = outer1_0(outer1_2[11]).intl;
obj[1] = intl.string(outer1_0(outer1_2[11]).t.CKsXk3);
obj[2] = outer1_1(outer1_2[12]);
obj.open(obj);
}).finally(() => callback2(false));
}, items6)
};
const userStatus2 = quest.userStatus;
let completedAt1;
if (userStatus2 != null) {
completedAt1 = userStatus2.completedAt;
}
const tmpResult5 = quest(7060);
obj2 = {
quest,
defibrillator: obj1,
step: tmp32,
stepActions: tmp33,
showMicrophone: null == completedAt1 && !isQuestProgressing && tmp6[0] === quest(5116).TaskPlatformScreen.CONSOLE && !hasWatchVideoOnMobileTasks,
handleTaskSelect(arg0) {
if (arg0 === showConsoleSelect.CONSOLE) {
let DESELECT_PLATFORM = quest(_undefined[25]).QuestContentCTA.SELECT_CONSOLE_PLATFORM;
let tmp3 = _undefined;
let tmp4 = quest;
} else if (arg0 === tmp.DESKTOP) {
DESELECT_PLATFORM = quest(_undefined[25]).QuestContentCTA.SELECT_DESKTOP_PLATFORM;
tmp3 = _undefined;
tmp4 = quest;
} else {
tmp3 = _undefined;
DESELECT_PLATFORM = quest(_undefined[25]).QuestContentCTA.DESELECT_PLATFORM;
tmp4 = quest;
}
let tmp4Result = tmp4(tmp3[26]);
if (tmp4Result.shouldMigrateToAdAnalyticsInterface(tmp4(tmp3[26]).AdAnalyticsInterfaceExperimentStep.STEP_2_CLICKED_INTERNAL, "quest_bottom_sheet")) {
tmp4Result = tmp4(tmp3[27]);
let obj = { type: null, adCreativeType: null, adCreativeId: null, questContentCTA: null, surfaceId: null, sourceQuestContent: null, impressionId: null };
obj[0] = tmp4(tmp3[28]).AdUserActionType.CLICK_INTERNAL;
obj[1] = tmp4(tmp3[29]).AdCreativeType.QUEST;
obj[2] = quest.id;
obj[3] = DESELECT_PLATFORM;
obj[4] = tmp4(tmp3[15]).QuestContent.QUEST_BOTTOM_SHEET;
obj[5] = questLogger;
obj[6] = c3;
tmp4Result.captureAdUserAction(obj);
} else {
obj = { questId: null, questContent: null, questContentCTA: null, sourceQuestContent: null };
obj[0] = quest.id;
obj[1] = tmp4(tmp3[15]).QuestContent.QUEST_BOTTOM_SHEET;
obj[2] = DESELECT_PLATFORM;
obj[3] = questLogger;
_undefined(obj);
}
_undefined3(arg0);
}
};
return obj2;
}
class QuestBottomSheetContent {
constructor(arg0) {
({ defibrillator, quest } = global);
flag = global.showMicrophone;
if (flag === undefined) {
flag = false;
}
sourceQuestContent = global.sourceQuestContent;
step = global.step;
c2 = undefined;
tmp = c2;
obj = require("useIsMobileQuestDockRenderedBase");
hasWatchVideoOnMobileTasks = obj.useHasWatchVideoOnMobileTasks(quest.config);
c2 = hasWatchVideoOnMobileTasks;
items = [, , ];
items[0] = quest;
items[1] = hasWatchVideoOnMobileTasks;
items[2] = sourceQuestContent;
tmp4 = jsxs;
tmp6 = jsxs;
tmp7 = step === jsxs.TASK_SELECT;
memo = Object.useMemo(() => {
if (hasWatchVideoOnMobileTasks) {
let obj = { quest: null, sourceQuestContent: null };
obj[0] = quest;
obj[1] = sourceQuestContent;
let tmp5Result = outer1_10(quest(hasWatchVideoOnMobileTasks[30]).QuestBottomSheetProgressCardWatchTask, obj);
} else {
obj = quest(hasWatchVideoOnMobileTasks[19]);
const tmp8 = quest(hasWatchVideoOnMobileTasks[30]);
if (isInGameQuestResult) {
obj = { quest: null, sourceQuestContent: null };
obj[0] = tmp3;
obj[1] = sourceQuestContent;
tmp5Result = tmp5(tmp8.QuestBottomSheetProgressCardInGameTask, obj);
} else {
const obj1 = { quest: null, sourceQuestContent: null };
obj1[0] = tmp3;
obj1[1] = sourceQuestContent;
tmp5Result = tmp5(tmp8.QuestBottomSheetProgressCardPlayStreamTask, obj1);
}
isInGameQuestResult = obj.isInGameQuest(quest);
}
return tmp5Result;
}, items);
tmp5 = Fragment;
if (tmp7) {
tmp8 = jsx;
tmp9 = sourceQuestContent;
obj = { onTaskSelect: null };
obj[0] = global.handleTaskSelect;
tmp7 = jsx(require("QuestBottomSheetTaskSelect"), obj);
}
items1 = [, , ];
items1[0] = tmp7;
tmp10 = step === tmp6.CONSOLE_CONNECT;
if (tmp10) {
tmp11 = jsx;
tmp12 = sourceQuestContent;
obj1 = { quest: null, step: null, sourceQuestContent: null };
obj1[0] = quest;
obj1[1] = step;
obj1[2] = sourceQuestContent;
tmp10 = jsx(require("NonInlineConsoleConnection"), obj1);
}
items1[1] = tmp10;
tmp4Result = step === tmp6.TASK_STATUS;
if (tmp4Result) {
items2 = [, ];
items2[0] = memo;
tmp14 = View;
if (flag) {
flag = !hasWatchVideoOnMobileTasks;
}
if (flag) {
obj2 = { quest: null, errorHints: null };
obj2[0] = quest;
tmp17 = null;
errorHints = undefined;
tmp15 = jsx;
tmp16 = MicrophoneUnit;
if (defibrillator != null) {
errorHints = defibrillator.errorHints;
}
obj2[1] = errorHints;
flag = tmp15(tmp16, obj2);
}
obj3 = { children: null };
items2[1] = flag;
obj3[0] = items2;
tmp4Result = tmp4(tmp14, obj3);
}
items1[2] = tmp4Result;
return tmp4(tmp5, { children: items1 });
}
}
function MicrophoneUnit(arg0) {
let errorHints;
let quest;
({ quest, errorHints } = arg0);
const tmp = callback3();
let obj = require(10346) /* useQuests */;
let num;
if (errorHints != null) {
num = errorHints.length;
}
if (num == null) {
num = 0;
}
if (num > 0) {
if (null != errorHints) {
const items = [];
items[HermesBuiltin.arraySpread(errorHints.map((message) => message.message), 0)] = obj.useQuestHowToHelpArticle().message;
let items3 = items;
}
obj = { style: null, children: null };
obj[0] = tmp.microphoneUnit;
obj = { style: null, children: null };
obj[0] = tmp.microphoneUnitHeader;
let str = "text-feedback-warning";
if (tmp4) {
str = "text-feedback-critical";
}
const obj1 = { color: null };
obj1[0] = str;
const items1 = [closure_10(tmp2(7744).WarningIcon, obj1), ];
const intl2 = tmp2(1236).intl;
if (tmp4) {
const obj2 = { gameTitle: null };
obj2[0] = quest.config.messages.gameTitle;
let formatToPlainStringResult = intl2.formatToPlainString(tmp2(1236).t["28Ql27"], obj2);
} else {
formatToPlainStringResult = intl2.string(tmp2(1236).t.YstzGO);
}
const obj3 = { variant: "text-md/medium", color: "mobile-text-heading-primary", children: null };
obj3[2] = formatToPlainStringResult;
items1[1] = closure_10(tmp2(4251).Text, obj3);
obj[1] = items1;
const items2 = [closure_11(View, obj), items3.map((children) => callback2(callback(table[35]).Text, { variant: "text-sm/normal", children }, arg1))];
obj[1] = items2;
return closure_11(View, obj);
}
const tmp2Result = require(7075) /* isSponsoredPlayQuest */;
const intl = tmp2(1236).intl;
if (isSponsoredPlayQuestResult) {
let stringResult = intl.string(tmp2(1236).t.bUyEZZ);
} else {
const obj4 = { gameTitle: null };
obj4[0] = quest.config.messages.gameTitle;
stringResult = intl.formatToPlainString(tmp2(1236).t.GXqvC1, obj4);
}
items3 = [stringResult];
}
let c4 = importDefaultResult;
({ QuestsExperimentLocations: metroImportAll, QuestTaskPlatform: c9 } = QuestsExperimentLocations);
({ jsx: c10, jsxs: unpackModuleId, Fragment: closure_12 } = jsxProd);
let obj = { TASK_SELECT: "TASK_SELECT", CONSOLE_CONNECT: "CONSOLE_CONNECT", TASK_STATUS: "TASK_STATUS" };
obj = { contentContainer: null, microphoneUnit: null, microphoneUnitHeader: null };
obj[0] = { display: "flex", paddingHorizontal: require("Themes").space.PX_16, gap: require("Themes").space.PX_24 };
createCacheKey = { display: "flex", gap: require("Themes").space.PX_8, marginHorizontal: -require("Themes").space.PX_16, paddingHorizontal: require("Themes").space.PX_16, marginTop: require("Themes").space.PX_16, paddingTop: require("Themes").space.PX_16, borderTopWidth: 1, borderTopColor: require("Themes").colors.BORDER_SUBTLE };
obj[1] = createCacheKey;
let obj1 = { display: "flex", paddingHorizontal: require("Themes").space.PX_16, gap: require("Themes").space.PX_24 };
obj[2] = { display: "flex", flexDirection: "row", alignItems: "center", gap: require("Themes").space.PX_8 };
let closure_14 = createCacheKey.createStyles(obj);
const context = importDefaultResult.createContext({ isInQuestBottomSheet: false });
let obj3 = { display: "flex", flexDirection: "row", alignItems: "center", gap: require("Themes").space.PX_8 };
let result = require("get ActivityIndicator").fileFinishedImporting("modules/quests/native/QuestBottomSheet/QuestBottomSheet.tsx");
export default function QuestBottomSheetConnected(questContentPosition) {
let importDefault;
let require;
let sourceQuestContent;
({ questId: require, initialStep: importDefault, sourceQuestContent } = questContentPosition);
let stateFromStores;
let obj = require(sourceQuestContent[17]);
const items = [initializeState];
stateFromStores = obj.useStateFromStores(items, () => outer1_7.getQuest(closure_0));
let tmp4 = null;
if (null != stateFromStores) {
obj = { overrideVisibility: true, questOrQuests: null, questContent: null, questContentPosition: null, sourceQuestContent: null, children: null };
obj[1] = stateFromStores;
obj[2] = tmp(tmp2[15]).QuestContent.QUEST_BOTTOM_SHEET;
obj[3] = questContentPosition.questContentPosition;
obj[4] = sourceQuestContent;
obj[5] = function children() {
return outer1_10(outer1_15, { quest: stateFromStores, initialStep: closure_1, sourceQuestContent });
};
tmp4 = callback2(tmp(tmp2[18]).QuestContentImpressionTrackerNative, obj);
}
return tmp4;
};
export const QuestBottomSheetStep = obj;
export { useEnrolledQuestContentProps };
export { QuestBottomSheetContent };
export const QuestBottomSheetContext = context;