Files
discord-decomp/modules/quests/hooks/RewardCodeClaimHooks.tsx
T
2026-11-01 12:12:55 +02:00

275 lines
9.9 KiB
TypeScript

// Metro module 10965 (f10966).
import _slicedToArray from "../../../_bundle/_slicedToArray";
import { useState, useCallback, useEffect } from "react";
import { claimQuestReward, fetchQuestRewardCode } from "../QuestActionCreators";
import { QuestRewardCodePlatforms } from "../QuestTypes";
import { useTrackQuestContentClickedWithImpression } from "../lib/analytics/AnalyticsHooks";
import { useQuestImpressionId } from "../lib/analytics/ContentImpressionTrackerHooks";
import { shouldMigrateToAdAnalyticsInterface, AdAnalyticsInterfaceExperimentStep } from "../experiments/AdAnalyticsInterfaceExperiment";
import { captureAdUserAction } from "../../ads/analytics/captureAdUserAction";
import { AdUserActionType } from "../../ads/analytics/captureAdUserActionTypes";
import { AdCreativeType } from "../../../_bundle/Module6013";
import { QuestContentCTA } from "../lib/analytics/AnalyticsTypes";
function $mk85988($env) {
return () => {
const r7 = $env;
const r2 = r7[1];
if (r2 != null) {
const r3 = $env.$parent;
const r12 = r3[0];
const r1 = r3[2];
if (r12(r1[7]).shouldMigrateToAdAnalyticsInterface(r12(r1[7]).AdAnalyticsInterfaceExperimentStep.STEP_2_CLICKED_INTERNAL, "quest_reward_code_redemption_link")) {
const r38 = r12(r1[8]);
const r44 = {
type: r12(r1[9]).AdUserActionType.CLICK_INTERNAL,
adCreativeType: r12(r1[10]).AdCreativeType.QUEST,
adCreativeId: null,
questContentCTA: null,
surfaceId: null,
sourceQuestContent: null,
impressionId: null,
questContentPosition: null
};
const r11 = r7[0];
r44.adCreativeId = r11.id;
r44.questContentCTA = r12(r1[11]).QuestContentCTA.REDEEM_REWARD;
const surfaceId = r7[2];
r44.surfaceId = surfaceId;
const sourceQuestContent3 = r7[4];
r44.sourceQuestContent = sourceQuestContent3;
const impressionId = r7[6];
r44.impressionId = impressionId;
const questContentPosition3 = r7[3];
r44.questContentPosition = questContentPosition3;
r38.captureAdUserAction(r44);
r12(r1[8]).captureAdUserAction({
type: r12(r1[9]).AdUserActionType.CLICK_INTERNAL,
adCreativeType: r12(r1[10]).AdCreativeType.QUEST,
adCreativeId: r11.id,
questContentCTA: r12(r1[11]).QuestContentCTA.VISIT_REDEMPTION_LINK,
surfaceId,
sourceQuestContent: sourceQuestContent3,
impressionId,
questContentPosition: questContentPosition3
});
} else {
const r20 = r7[5];
const r10 = r7[0];
const id = r10.id;
const questContent2 = r7[2];
const r22 = {
questId: id,
questContent: questContent2,
questContentCTA: r12(r1[11]).QuestContentCTA.REDEEM_REWARD,
questContentPosition: null,
sourceQuestContent: null
};
const questContentPosition2 = r7[3];
r22.questContentPosition = questContentPosition2;
const sourceQuestContent2 = r7[4];
r22.sourceQuestContent = sourceQuestContent2;
r20(r22);
r20({
questId: r10.id,
questContent: questContent2,
questContentCTA: r12(r1[11]).QuestContentCTA.VISIT_REDEMPTION_LINK,
questContentPosition: questContentPosition2,
sourceQuestContent: sourceQuestContent2
});
}
(0, r3[1])(r1[12])(r2);
}
};
}
let env7387 = {};
export function useClaimOrFetchRewardCode(a0) {
let env18403 = {
$parent: env7387
};
const isClaimingReward = a0.isClaimingReward;
env18403[0] = isClaimingReward;
const isFetchingRewardCode = a0.isFetchingRewardCode;
env18403[1] = isFetchingRewardCode;
const questContent2 = a0.questContent;
env18403[2] = questContent2;
const quest2 = a0.quest;
env18403[3] = quest2;
const rewardCode = a0.rewardCode;
env18403[4] = rewardCode;
const preview = a0.preview;
env18403[5] = preview;
const r20 = _slicedToArray(useState(false), 2);
const hasError2 = r20[0];
env18403[6] = hasError2;
const setHasError = r20[1];
env18403[7] = setHasError;
const r23 = _slicedToArray(useState(false), 2);
const r16 = r23[0];
env18403[8] = r16;
env18403[9] = r23[1];
let c18404_0 = async (c30315_0, c30315_1, c30315_2) => {
let c30315_6 = 0;
L10: {
try {
c30315_6 = 1;
(0, env18403[9])(true);
await claimQuestReward(c30315_0, c30315_1, c30315_2);
(0, env18403[7])(false);
(0, env18403[9])(false);
c30315_6 = 0;
} catch ($e) {
let r7 = $e;
if (c30315_6 !== 0) {
while (true) {
try {
c30315_6 = 0;
(0, env18403[7])(true);
(0, env18403[9])(false);
break L10;
} catch ($e) {
r7 = $e;
if (c30315_6 === 0) {
break;
}
}
}
}
throw r7;
}
}
};
const callback2 = useCallback(function() {
return c18404_0.apply(this, arguments);
}, []);
env18403[10] = callback2;
const callback3 = useCallback((a0) => {
try {
fetchQuestRewardCode(a0);
} catch ($e) {
(0, env18403[7])(true);
}
}, []);
env18403[11] = callback3;
useEffect(() => {
if (!(env18403[5] === true || env18403[4] != null || env18403[6] || env18403[0] || env18403[8] || env18403[1])) {
(0, env18403[7])(false);
const r13 = env18403[3];
if (r13.userStatus?.claimedAt == null) {
(0, env18403[10])(r13.id, QuestRewardCodePlatforms.CROSS_PLATFORM, env18403[2]);
} else if (r13.userStatus?.claimedAt != null) {
(0, env18403[11])(r13.id);
}
}
}, [callback2, callback3, hasError2, isClaimingReward, r16, isFetchingRewardCode, questContent2, quest2, rewardCode, preview]);
return {
claimCode: callback2,
fetchCode: callback3,
hasError: hasError2,
setHasError
};
}
export function useHandleRedemptionLinkClick(a0) {
let env18402;
const r1 = env18402 = {
$parent: env7387
};
const quest2 = a0.quest;
env18402[0] = quest2;
const redemptionLink2 = a0.redemptionLink;
env18402[1] = redemptionLink2;
const questContent2 = a0.questContent;
env18402[2] = questContent2;
const questContentPosition2 = a0.questContentPosition;
env18402[3] = questContentPosition2;
const sourceQuestContent2 = a0.sourceQuestContent;
env18402[4] = sourceQuestContent2;
env18402[5] = void 0;
env18402[6] = void 0;
const trackQuestContentClickedWithImpression2 = useTrackQuestContentClickedWithImpression();
env18402[5] = trackQuestContentClickedWithImpression2;
const questImpressionId2 = useQuestImpressionId();
env18402[6] = questImpressionId2;
const r22 = [quest2.id, questContent2, questContentPosition2, sourceQuestContent2, trackQuestContentClickedWithImpression2, questImpressionId2, redemptionLink2];
return useCallback($mk85988(r1), r22);
}
export function useClaimRewardCodePrimaryCtaClickHandler(a0) {
const { claimCode, fetchCode, hasError, onDismiss, quest, questContent, questContentCTA = QuestContentCTA.GET_REWARD_CODE } = a0;
let env18406;
const GET_REWARD_CODE = questContentCTA;
const { questContentPosition, redemptionLink, sourceQuestContent } = a0;
const trackQuestContentClickedWithImpression = useTrackQuestContentClickedWithImpression();
const questImpressionId = useQuestImpressionId();
const r35 = env18406 = {
$parent: env7387
};
env18406[0] = void 0;
env18406[1] = void 0;
env18406[2] = void 0;
env18406[3] = void 0;
env18406[4] = void 0;
const quest2 = a0.quest;
env18406[0] = quest2;
const redemptionLink2 = a0.redemptionLink;
env18406[1] = redemptionLink2;
const questContent2 = a0.questContent;
env18406[2] = questContent2;
const questContentPosition2 = a0.questContentPosition;
env18406[3] = questContentPosition2;
const sourceQuestContent2 = a0.sourceQuestContent;
env18406[4] = sourceQuestContent2;
env18406[5] = void 0;
env18406[6] = void 0;
const trackQuestContentClickedWithImpression2 = useTrackQuestContentClickedWithImpression();
env18406[5] = trackQuestContentClickedWithImpression2;
const questImpressionId2 = useQuestImpressionId();
env18406[6] = questImpressionId2;
const r47 = [quest2.id, questContent2, questContentPosition2, sourceQuestContent2, trackQuestContentClickedWithImpression2, questImpressionId2, redemptionLink2];
const callback = useCallback($mk85988(r35), r47);
const r52 = [claimCode, fetchCode, hasError, onDismiss, quest.id, , , , , , , , , ,];
const claimedAt = quest.userStatus?.claimedAt;
const r56 = () => {
if (hasError) {
if (quest.userStatus?.claimedAt != null) {
fetchCode(quest.id);
} else {
claimCode(quest.id, QuestRewardCodePlatforms.CROSS_PLATFORM, questContent);
if (shouldMigrateToAdAnalyticsInterface(AdAnalyticsInterfaceExperimentStep.STEP_2_CLICKED_INTERNAL, "quest_reward_code_primary_cta")) {
captureAdUserAction({
type: AdUserActionType.CLICK_INTERNAL,
adCreativeType: AdCreativeType.QUEST,
adCreativeId: quest.id,
questContentCTA: GET_REWARD_CODE,
surfaceId: questContent,
sourceQuestContent,
impressionId: questImpressionId,
questContentPosition
});
} else {
trackQuestContentClickedWithImpression({
questId: quest.id,
questContent,
questContentCTA: GET_REWARD_CODE,
questContentPosition,
sourceQuestContent
});
}
}
} else {
if (redemptionLink != null) {
callback();
}
onDismiss();
}
};
r52[5] = claimedAt;
r52[6] = questContent;
r52[7] = GET_REWARD_CODE;
r52[8] = questContentPosition;
r52[9] = trackQuestContentClickedWithImpression;
r52[10] = questImpressionId;
r52[11] = redemptionLink;
r52[12] = sourceQuestContent;
r52[13] = callback;
return useCallback(r56, r52);
}