Files
discord-decomp/sources/modules/quests/utils/VideoQuestUtils.tsx
T
2026-07-27 16:20:00 +03:00

146 lines
7.6 KiB
TypeScript

/* Metro module 9522; source: modules/quests/utils/VideoQuestUtils.tsx; dependencies: [4401, 7093, 7095, 661, 7091, 9484, 7116, 1244, 7110, 4007, 2, 9523] */
function _fun74293(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#74293, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9708:6, offset: 0x01d89035, size: 312 bytes, params: 8, frame: 22
const env0_0 = require;
const closure = sendVideoProgress;
const closure2 = function(a0, a1) {
var r1;
var r0;
var value = 0;
if (a0 <= value) {
r0 = value;
} else if (a1 <= value) {
r0 = value;
} else {
value = 1;
if (a0 >= a1) {
r1 = value;
} else {
value = global.Math.min(value, global.Math.round(a0 / a1 * 100) / 100);
r1 = value;
}
r0 = r1;
}
return r0;
};
const closure3 = function(a0) {
return 'VIDEO-QUEST-' + a0;
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const networkStore = importDefault(4401) /* metro dependency 4401: NetworkStore */;
const questStore = importDefault(7093) /* metro dependency 7093: QuestStore */;
const videoQuestUIStore = importDefault(7095) /* metro dependency 7095: VideoQuestUIStore */;
const env0_5 = (require(661) /* metro dependency 661: Constants */).AnalyticEvents;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/quests/utils/VideoQuestUtils.tsx');
const getVideoQuestWatchCtaText = (require(9523) /* metro dependency 9523: MobileQuestVideoWatchCtaCopy */).getVideoQuestWatchCtaText;
exports.getVideoQuestWatchCtaText = getVideoQuestWatchCtaText;
exports.sendVideoProgress = closure;
exports.getVideoOrientation = function(a0) {
var video = a0.assets.video;
var value = 'portrait';
return video == null || video.width == null || video.height == null ? value : video.width > video.height ? 'landscape' : value;
};
exports.getVideoQuestProgressRemainingAccessibilityLabel = getVideoQuestProgressRemainingAccessibilityLabel;
exports.formatVideoProgressRatio = closure2;
exports.getVideoQuestEndCardCtaText = getVideoQuestEndCardCtaText;
exports.handleVideoQuestModalClose = handleVideoQuestModalClose;
exports.getVideoQuestModalKey = closure3;
exports.computeMaxSeekableTime = function(a0, a1) {
var r0;
var value = a0;
if (value >= a1 - 1) {
value = global.Math.max(value, a1);
r0 = value;
} else {
r0 = value;
}
return r0;
};
exports.isVideoQuestProgressing = isVideoQuestProgressing;
}
function sendVideoProgress(a0, a1) { // fn#74294, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9708:151, offset: 0x01d8916d, size: 144 bytes, params: 3, frame: 17
var value;
const value2 = undefined;
let r3 = (require(7091) /* metro dependency 7091: QuestDataUtils */).isQuestExpired(a0) || (a0.userStatus == null ? value2 : a0.userStatus.enrolledAt) == null;
r3 = !r3 ? (a0.userStatus == null ? value2 : a0.userStatus.completedAt) != null : r3;
if (!r3) {
value = require(9484) /* metro dependency 9484: QuestActionCreators */;
value.updateVideoProgress(a0.id, a1);
}
return value2;
}
function getVideoQuestProgressRemainingAccessibilityLabel(a0, a1) { // fn#74298, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9708:928, offset: 0x01d892d1, size: 393 bytes, params: 3, frame: 21
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
if (a1) {
return intl.string(t['ij5E/5']);
}
const {minutes, seconds} = (require(7116) /* metro dependency 7116: QuestTaskUtils */).getRemainingTaskTime(a0);
return intl.formatToPlainString(t.nzYZrt,
{remainingTime: minutes > 0 && seconds > 0 ? intl.formatToPlainString(t['lW/66D'], {minutes: minutes,
seconds: seconds}) : minutes > 0 ? intl.formatToPlainString(t['SxnF/O'],
{count: minutes}) : intl.formatToPlainString(t['0BZpdi'], {count: seconds})});
}
function getVideoQuestEndCardCtaText({ctaConfig}) { // fn#74299, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9708:1548, offset: 0x01d8945a, size: 85 bytes, params: 2, frame: 15
var r0;
var intl;
const buttonLabel = ctaConfig.buttonLabel;
if (buttonLabel != null) {
r0 = buttonLabel;
} else {
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r0 = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.iiTtpJ);
}
return r0;
}
function handleVideoQuestModalClose({questId, sourceQuestContent, videoSessionId}) { // fn#74300, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9708:1705, offset: 0x01d894af, size: 369 bytes, params: 2, frame: 25
var r0;
var quest;
var maxTimestampSec;
var formatVideoProgressRatioBinding;
var value11;
var moduleValue;
var trackQuestEvent;
var object2;
var moduleValue2;
var object4;
VideoQuestUIStore.getState().setTranscriptEnabled(false);
const videoProgress = VideoQuestUIStore.getState().getVideoProgress(questId);
if (videoProgress != null) {
quest = QuestStore.getQuest(questId);
r0 = quest != null && quest.userStatus?.enrolledAt != null;
r0 = r0 && quest.userStatus?.completedAt == null;
if (r0) {
sendVideoProgress(quest, videoProgress.maxTimestampSec);
}
formatVideoProgressRatioBinding = formatVideoProgressRatio;
maxTimestampSec = videoProgress.maxTimestampSec;
value11 = formatVideoProgressRatioBinding(maxTimestampSec, videoProgress.duration);
moduleValue = require(7110) /* metro dependency 7110: AnalyticsActions */;
trackQuestEvent = moduleValue.trackQuestEvent;
maxTimestampSec = videoProgress.maxTimestampSec;
Reflect.apply(trackQuestEvent, moduleValue, [{questId: questId, event: AnalyticEvents.QUEST_VIDEO_PROGRESSED,
properties: {progress: value11, video_timestamp_seconds: maxTimestampSec, video_session_id: videoSessionId},
sourceQuestContent: sourceQuestContent}]);
moduleValue2 = require(7110) /* metro dependency 7110: AnalyticsActions */;
trackQuestEvent = moduleValue2.trackQuestEvent;
object2 = {questId: questId};
object2.event = AnalyticEvents.QUEST_VIDEO_MODAL_CLOSED;
object4 = {video_progress: value11, video_session_id: videoSessionId};
object4.network_connection_speed = NetworkStore.getEffectiveConnectionSpeed();
object2.properties = object4;
object2.sourceQuestContent = sourceQuestContent;
Reflect.apply(trackQuestEvent, moduleValue2, [object2]);
}
}
function isVideoQuestProgressing(a0) { // fn#74302, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9708:2661, offset: 0x01d89649, size: 95 bytes, params: 2, frame: 15
const hasWatchVideoTasks2 = (require(7116) /* metro dependency 7116: QuestTaskUtils */).hasWatchVideoTasks(a0);
return hasWatchVideoTasks2 ? (require(4007) /* metro dependency 4007: NavigationRouteUtilsNative */).isModalOpen(getVideoQuestModalKey(a0.id)) : !!hasWatchVideoTasks2;
}