/* 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; }