195 lines
8.7 KiB
TypeScript
195 lines
8.7 KiB
TypeScript
// Metro module 14176 (f14177).
|
|
import _objectWithoutProperties from "../../../_bundle/_objectWithoutProperties";
|
|
import * as Module19 from "react";
|
|
import { useCallback, useMemo } from "react";
|
|
import QuestStore from "../QuestStore";
|
|
import { LinkingTypes } from "../../../Constants";
|
|
import { IconButton } from "../../../design/components/Button/native/IconButton.native";
|
|
import Module8964 from "../../../_bundle/Module8964";
|
|
import { intl, t } from "../../../intl/index.native";
|
|
import { useQuestPreviewActions, useShouldShowQuestPreviewOverrides } from "../hooks/QuestHooks";
|
|
import { useStateFromStores } from "../../../_bundle/Module589";
|
|
import { QuestContent } from "../QuestTypes";
|
|
import { useTrackQuestContentClickedWithImpression } from "../lib/analytics/AnalyticsHooks";
|
|
import { useQuestImpressionId } from "../lib/analytics/ContentImpressionTrackerHooks";
|
|
import { getExternalCtaLabel, getCtaLink, copyShareLink } from "../utils/QuestCopyUtils";
|
|
import * as _QuestUtils from "../utils/QuestUtils";
|
|
import { isIOS } from "../../../utils/PlatformUtils";
|
|
import parseURL from "../../../utils/native/parseURL";
|
|
import { dismissOverlayScreens } from "./QuestUtils.native";
|
|
import { openGameLinkDirectly } from "../utils/QuestPlatformUtils";
|
|
import { QuestContentCTA } from "../lib/analytics/AnalyticsTypes";
|
|
import { AccessibilityAnnouncer } from "../../../_bundle/Module3902";
|
|
import QuestDisclosureModalActionCreators from "./QuestDisclosureModal/QuestDisclosureModalActionCreators";
|
|
import { manuallyStartConsoleQuest, manualStopConsoleQuest } from "../QuestActionCreators";
|
|
import { LinkExternalSmallIcon } from "../../../design/components/Icon/native/redesign/generated/LinkExternalSmallIcon";
|
|
import Module14177 from "../../../_bundle/Module14177";
|
|
import { CopyIcon } from "../../../design/components/Icon/native/redesign/generated/CopyIcon";
|
|
import { isConsoleQuest } from "../utils/QuestTaskUtils";
|
|
import { copy } from "../../../utils/ClipboardUtils.native";
|
|
import { CheckmarkLargeIcon } from "../../../design/components/Icon/native/redesign/generated/CheckmarkLargeIcon";
|
|
import { shouldMigrateToAdAnalyticsInterface, AdAnalyticsInterfaceExperimentStep } from "../experiments/AdAnalyticsInterfaceExperiment";
|
|
import { captureAdUserAction } from "../../ads/analytics/captureAdUserAction";
|
|
import { AdUserActionType } from "../../ads/analytics/captureAdUserActionTypes";
|
|
import { AdCreativeType } from "../../../_bundle/Module6013";
|
|
import { ContextMenu } from "../../../design/components/ContextMenu/native/ContextMenu.native";
|
|
let _excluded;
|
|
const renderDefaultButton = function renderDefaultButton(a0) {
|
|
return <IconButton ref={a0.ref} {..._objectWithoutProperties(a0, _excluded)} icon={Module8964} variant="secondary" accessibilityLabel={intl.string(t.CAgr1w)} accessibilityHint={intl.string(t.hd0b7t)} />;
|
|
};
|
|
_excluded = ["ref"];
|
|
const r29 = Module19.memo(function(a0) {
|
|
let children = a0.children;
|
|
if (children === void 0) {
|
|
children = renderDefaultButton;
|
|
}
|
|
let trackQuestContentClickedWithImpression, questImpressionId, externalCtaLabel, isShareableQuest, callback, callback2, callback3, callback4, callback5, memo, memo2, memo3, shouldShowQuestPreviewOverrides, memo4;
|
|
const quest = a0.quest;
|
|
let showShareLink = a0.showShareLink;
|
|
if (showShareLink === void 0) {
|
|
showShareLink = false;
|
|
}
|
|
let additionalItems = a0.additionalItems;
|
|
if (additionalItems === void 0) {
|
|
additionalItems = [];
|
|
}
|
|
let c21007_1 = additionalItems;
|
|
const sourceQuestContent = a0.sourceQuestContent;
|
|
trackQuestContentClickedWithImpression = void 0;
|
|
questImpressionId = void 0;
|
|
externalCtaLabel = void 0;
|
|
isShareableQuest = void 0;
|
|
callback = void 0;
|
|
callback2 = void 0;
|
|
callback3 = void 0;
|
|
callback4 = void 0;
|
|
callback5 = void 0;
|
|
memo = void 0;
|
|
memo2 = void 0;
|
|
memo3 = void 0;
|
|
shouldShowQuestPreviewOverrides = void 0;
|
|
memo4 = void 0;
|
|
const questPreviewActions = useQuestPreviewActions(quest.id);
|
|
const { handleComplete, handleProgress, handleResetDismissibilityClick, handleResetStatusClick, handleOverridePreviewClick, handleResetHasBeenSeenClick } = questPreviewActions;
|
|
const stateFromStores = useStateFromStores([QuestStore], () => QuestStore.getQuestPreviewOverride(QuestContent.QUEST_BAR_MOBILE), []);
|
|
trackQuestContentClickedWithImpression = useTrackQuestContentClickedWithImpression();
|
|
questImpressionId = useQuestImpressionId();
|
|
externalCtaLabel = getExternalCtaLabel(quest);
|
|
if (showShareLink) {
|
|
showShareLink = _QuestUtils.isShareableQuest(quest.config);
|
|
}
|
|
isShareableQuest = showShareLink;
|
|
callback = useCallback(() => {
|
|
if (isIOS() && parseURL(getCtaLink(quest.config)).payload.type === LinkingTypes.INVITE) {
|
|
dismissOverlayScreens();
|
|
}
|
|
openGameLinkDirectly(quest, {
|
|
content: QuestContent.QUEST_HOME_MOBILE,
|
|
ctaContent: QuestContentCTA.CONTEXT_MENU_OPEN_GAME_LINK,
|
|
impressionId: questImpressionId,
|
|
sourceQuestContent
|
|
});
|
|
}, [quest, questImpressionId, sourceQuestContent]);
|
|
callback2 = useCallback(() => {
|
|
if (isShareableQuest) {
|
|
copyShareLink(quest.id, {
|
|
content: QuestContent.QUEST_HOME_MOBILE,
|
|
ctaContent: QuestContentCTA.CONTEXT_MENU_COPY_LINK,
|
|
impressionId: questImpressionId,
|
|
sourceQuestContent
|
|
});
|
|
AccessibilityAnnouncer.announce(intl.string(t["+5kSoW"]));
|
|
}
|
|
}, [isShareableQuest, quest.id, questImpressionId, sourceQuestContent]);
|
|
callback3 = useCallback(() => {
|
|
QuestDisclosureModalActionCreators.showModal({
|
|
quest,
|
|
isTargetedDisclosure: false,
|
|
trackingCtx: {
|
|
content: QuestContent.QUEST_HOME_MOBILE,
|
|
ctaContent: QuestContentCTA.CONTEXT_MENU_OPEN_DISCLOSURE,
|
|
sourceQuestContent
|
|
}
|
|
});
|
|
}, [quest, sourceQuestContent]);
|
|
callback4 = useCallback(() => manuallyStartConsoleQuest(quest.id, true), [quest.id]);
|
|
callback5 = useCallback(() => manualStopConsoleQuest(quest.id), [quest.id]);
|
|
memo = useMemo(() => [{
|
|
label: externalCtaLabel,
|
|
IconComponent: LinkExternalSmallIcon,
|
|
action: callback,
|
|
accessibilityRole: "link"
|
|
}, {
|
|
label: intl.string(t.GcsZKJ),
|
|
action: callback3,
|
|
iconSource: Module14177
|
|
}, ...isShareableQuest ? [{
|
|
label: intl.string(t.WqhZss),
|
|
IconComponent: CopyIcon,
|
|
action: callback2
|
|
}] : []], [externalCtaLabel, callback, callback3, isShareableQuest, callback2]);
|
|
memo2 = useMemo(() => isConsoleQuest(quest) ? [{
|
|
label: "Start Console Heartbeat",
|
|
action: callback4
|
|
}, {
|
|
label: "Stop Console Heartbeat",
|
|
action: callback5
|
|
}] : [], [quest, callback4, callback5]);
|
|
memo3 = useMemo(() => [{
|
|
label: "Set Random Quest Progress",
|
|
action: () => handleProgress(0.9 * Math.random() + 0.03)
|
|
}, {
|
|
label: "Complete Quest",
|
|
action: handleComplete
|
|
}, {
|
|
label: "Reset Quest",
|
|
action: handleResetStatusClick
|
|
}, {
|
|
label: "Reset Dismissibility",
|
|
action: handleResetDismissibilityClick
|
|
}, {
|
|
label: "Reset Quest Seen",
|
|
action: handleResetHasBeenSeenClick
|
|
}, ...memo2, {
|
|
label: "Copy Quest ID",
|
|
action: () => copy(quest.id)
|
|
}], [memo2, handleComplete, handleResetDismissibilityClick, handleProgress, handleResetStatusClick, handleResetHasBeenSeenClick, quest.id]);
|
|
shouldShowQuestPreviewOverrides = useShouldShowQuestPreviewOverrides(quest);
|
|
const r90 = [handleOverridePreviewClick, quest.id, ,];
|
|
const id = stateFromStores?.id;
|
|
const r93 = () => ({
|
|
label: "Show in Quest Bar",
|
|
action: () => handleOverridePreviewClick(QuestContent.QUEST_BAR_MOBILE),
|
|
IconComponent: stateFromStores?.id === quest.id ? CheckmarkLargeIcon : void 0
|
|
});
|
|
r90[2] = id;
|
|
memo4 = useMemo(r93, r90);
|
|
return <ContextMenu items={useMemo(() => {
|
|
const r5 = c21007_1 != null ? [memo, c21007_1] : [memo];
|
|
if (shouldShowQuestPreviewOverrides) {
|
|
r5.push([memo4]);
|
|
}
|
|
return quest.preview ? [...r5, memo3] : r5;
|
|
}, [memo, memo3, quest.preview, shouldShowQuestPreviewOverrides, memo4, additionalItems])} onOpen={useCallback(() => {
|
|
if (shouldMigrateToAdAnalyticsInterface(AdAnalyticsInterfaceExperimentStep.STEP_2_CLICKED_INTERNAL, "quest_context_menu")) {
|
|
captureAdUserAction({
|
|
type: AdUserActionType.CLICK_INTERNAL,
|
|
adCreativeType: AdCreativeType.QUEST,
|
|
adCreativeId: quest.id,
|
|
questContentCTA: QuestContentCTA.OPEN_CONTEXT_MENU,
|
|
surfaceId: QuestContent.QUEST_HOME_MOBILE,
|
|
sourceQuestContent,
|
|
impressionId: questImpressionId
|
|
});
|
|
} else {
|
|
trackQuestContentClickedWithImpression({
|
|
questId: quest.id,
|
|
questContent: QuestContent.QUEST_HOME_MOBILE,
|
|
questContentCTA: QuestContentCTA.OPEN_CONTEXT_MENU,
|
|
sourceQuestContent
|
|
});
|
|
}
|
|
}, [quest.id, trackQuestContentClickedWithImpression, questImpressionId, sourceQuestContent])} triggerOnTap>{children}</ContextMenu>;
|
|
});
|
|
export default r29;
|