/* Metro module 11095; source: modules/media_keyboard/native/MediaKeyboardUtils.tsx; dependencies: [5, 1312, 1379, 4645, 1934, 4644, 1580, 661, 4661, 4650, 7879, 4658, 4651, 4662, 683, 4673, 4660, 477, 4092, 11096, 1239, 10381, 4570, 11120, 11121, 22, 2] */ function _fun84949(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#84949, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:6, offset: 0x01f5e24c, size: 621 bytes, params: 8, frame: 27 const env0_0 = require; const _arrayLikeToArray_84952 = function(a0, a1) { var r0; var r1; var r2; var value3; var length; var value5; var value = undefined; var value2 = value == null; reducibleJoin2: while (true) { if (value2) { r0 = value2; break reducibleJoin2; } value3 = value > a0.length; r0 = value3; break reducibleJoin2; } reducibleJoin4: while (true) { if (r0) { length = a0.length; r1 = length; break reducibleJoin4; } r1 = value; break reducibleJoin4; } value = (0, global.Array)(r1); var value4 = 0; if (value4 < r1) { r2 = value4; reducibleLoop5: while (true) { value[r2] = a0[r2]; value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value5 < r1) { r2 = value5; continue reducibleLoop5; } break reducibleLoop5; } } return value; }; const closure = addImagesFromPicker; const closure2 = handleCameraDialog; const closure3 = handleViewAllDialog; const closure4 = function() { return _handleLimitedPickerDialog.apply(this, arguments); }; const closure5 = function() { return _handleAttachFile.apply(this, arguments); }; const closure6 = mediaNodeToUploadItem; const closure7 = handleSelectKeyboardItem; const closure8 = function(a0) { if (MediaKeyboardTarget.CHAT === a0) { return DraftType.ChannelMessage; } if (MediaKeyboardTarget.COMMAND === a0) { return DraftType.SlashCommand; } if (MediaKeyboardTarget.APP_LAUNCHER === a0) { return DraftType.ApplicationLauncherCommand; } if (MediaKeyboardTarget.INTERACTION_MODAL === a0) { return DraftType.InteractionModal; } }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(5) /* metro dependency 5 */; const unsyncedUserSettingsStore = importDefault(1312) /* metro dependency 1312: UnsyncedUserSettingsStore */; const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */; const env0_6 = (require(4645) /* metro dependency 4645: DraftStore */).DraftType; const selectedChannelStore = importDefault(1934) /* metro dependency 1934: SelectedChannelStore */; const uploadAttachmentStore = importDefault(4644) /* metro dependency 4644: UploadAttachmentStore */; let value = require(1580) /* metro dependency 1580: MediaKeyboardConstants */; const env0_9 = value.MediaKeyboardTarget; const env0_10 = value.InAppCameraUsedViews; value = require(661) /* metro dependency 661: Constants */; const env0_11 = value.AnalyticEvents; const env0_12 = value.AnalyticsObjects; const env0_13 = value.AnalyticsObjectTypes; const env0_14 = value.AnalyticsPages; const env0_15 = value.AnalyticsSections; const env0_16 = value.ChatInputComponentViewedTypes; const env0_17 = value.ComponentActions; const env0_18 = value.MAX_UPLOAD_COUNT; const env0_19 = (require(4661) /* metro dependency 4661: NativePermissionConstants */).NativePermissionTypes; object = {code: 'function animatedIndexThreshold_MediaKeyboardUtilsTsx1(animatedSnapPoints,thresholdPercent){return animatedSnapPoints.get().length===1?thresholdPercent-1:thresholdPercent*(animatedSnapPoints.get().length-1);}'}; value = _fun84984(); (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/media_keyboard/native/MediaKeyboardUtils.tsx'); exports.addImagesFromPicker = closure; exports.addAttachmentForCommand = addAttachmentForCommand; exports.handleCameraDialog = closure2; exports.handleViewAllDialog = closure3; exports.handleLimitedPickerDialog = closure4; exports.handleSelectGift = handleSelectGift; exports.handleSelectThread = handleSelectThread; exports.handleAttachFile = closure5; exports.mediaNodeToUploadItem = closure6; exports.cropResultToUploadItem = cropResultToUploadItem; exports.handleSelectKeyboardItem = closure7; exports.showSimpleMediaKeyboard = showSimpleMediaKeyboard; exports.animatedIndexThreshold = value; exports.getMediaKeyboardDraftType = closure8; } function _createForOfIteratorHelperLoose_84950(a0, a1) { // fn#84950, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:457, offset: 0x01f5e4b9, size: 372 bytes, params: 3, frame: 20 var r6; var r9; var r5; var value3; var regexp; const env0_0 = a0; const Symbol = global.Symbol; let value = typeof Symbol !== 'undefined'; let r1 = value && a0[global.Symbol.iterator]; r1 = !r1 ? a0['@@iterator'] : r1; if (r1) { value = r1.call(a0); return value.next.bind(value); } const Array = global.Array; if (Array.isArray(a0)) { if (r1) { } return _fun84951; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_84952(a0, value); r5 = value; } else { value3 = ({}).toString.call(a0).slice(8, -1); r6 = value3 === 'Object' && a0.constructor; r9 = r6 ? a0.constructor.name : value3; if (r9 === 'Map') { r6 = global.Array.from(a0); } else if (r9 === 'Set') { r6 = global.Array.from(a0); } else if (r9 === 'Arguments') { value = _arrayLikeToArray_84952(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_84952(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun84951; } const TypeError = global.TypeError; throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'); } function addImagesFromPicker(a0, a1, a2) { // fn#84953, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:1367, offset: 0x01f5e62d, size: 212 bytes, params: 4, frame: 17 const env0_0 = a0; const env0_1 = a2; const UploadOrigin = (require(4650) /* metro dependency 4650: Upload */).UploadOrigin; const FILE_ATTACHMENT = UploadOrigin.FILE_ATTACHMENT; if (a2 !== FILE_ATTACHMENT) { (importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */).addFiles({files: a1.filter(_fun84954).map(function(a0) { var r2; var object = {}; copyDataProperties(object, a0, r2); object['origin'] = importDefault; return object; }), channelId: a0, draftType: DraftType.ChannelMessage}); } else { (importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */).addFiles({files: a1, channelId: a0, draftType: DraftType.ChannelMessage}); } } function handleCameraDialog({channel, previewType, onDismissKeyboard, onRestoreKeyboard, onSelectFiles}) { // fn#84957, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:1753, offset: 0x01f5e7b4, size: 121 bytes, params: 2, frame: 13 const defaultImport = importDefault(4662) /* metro dependency 4662: NativePermissionUtils */; const requestPermission = defaultImport.requestPermission; const CAMERA = NativePermissionTypes.CAMERA; Reflect.apply(requestPermission, defaultImport, [CAMERA]).then(_fun84958); } function handleViewAllDialog({channel, draftType, uploadLimit, includedUploadIds, onDismissKeyboard, onRestoreKeyboard, onSelectFiles}) { // fn#84960, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:2949, offset: 0x01f5eb38, size: 231 bytes, params: 2, frame: 14 var r3; var defaultImport; const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */; if (platformUtilsModule.isIOS()) { if ((require(4092) /* metro dependency 4092: DeviceUtils */).getSystemVersionMajor() >= 14) { r3 = global.Promise.resolve(true); } else { defaultImport = importDefault(4662) /* metro dependency 4662: NativePermissionUtils */; r3 = defaultImport.requestPermission(NativePermissionTypes.PHOTOS); } } else { defaultImport = importDefault(4662) /* metro dependency 4662: NativePermissionUtils */; r3 = defaultImport.requestPermission(NativePermissionTypes.PHOTOS); } r3.then(_fun84961); } function _handleLimitedPickerDialog() { // fn#84969, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:4394, offset: 0x01f5f020, size: 50 bytes, params: 1, frame: 14 return env0_3(_fun84971).apply(this, arguments); } function _handleAttachFile() { // fn#84973, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:4677, offset: 0x01f5f0c7, size: 50 bytes, params: 1, frame: 14 return env0_3(_fun84975).apply(this, arguments); } function mediaNodeToUploadItem(a0, a1) { // fn#84980, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:5625, offset: 0x01f5f3b3, size: 213 bytes, params: 3, frame: 18 const image = a0.node.image; const object2 = {}; object2.id = a0.node.id ?? image.uri; const UploadOrigin = (require(4650) /* metro dependency 4650: Upload */).UploadOrigin; const IMAGE_PICKER = UploadOrigin.IMAGE_PICKER; object2.origin = IMAGE_PICKER; object2.uri = image.uri; object2.originalUri = image.uri; object2.mimeType = image.mimeType; object2.width = image.width; object2.height = image.height; const filename = image.filename; object2.filename = filename; object2.playableDuration = image.playableDuration; const UploadPlatform = (require(4650) /* metro dependency 4650: Upload */).UploadPlatform; const REACT_NATIVE = UploadPlatform.REACT_NATIVE; object2.platform = REACT_NATIVE; copyDataProperties(object2, a1 != null && ({createdUsingInAppCamera: a1}), filename); return object2; } function handleSelectKeyboardItem(a0, a1, a2, a3) { // fn#84981, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:5983, offset: 0x01f5f488, size: 201 bytes, params: 5, frame: 20 var defaultImport; var addFile; var object2; var upload; var defaultImport2; const env0_0 = a1.node.image; if (a2) { upload = UploadAttachmentStore.findUpload(a0, DraftType.ChannelMessage, _fun84982); if (upload != null) { defaultImport2 = importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */; defaultImport2.remove(a0, upload.id, DraftType.ChannelMessage); } } else { defaultImport = importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */; addFile = defaultImport.addFile; object2 = {channelId: a0}; object2.file = mediaNodeToUploadItem(a1, a3); object2.draftType = DraftType.ChannelMessage; Reflect.apply(addFile, defaultImport, [object2]); } } function _fun84984() { // fn#84984, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:6503, offset: 0x01f5f5f4, size: 48 bytes, params: 1, frame: 2 const closure = function(a0, a1) { return a0.get().length === 1 ? a1 - 1 : a1 * (a0.get().length - 1); }; closure.__closure = {}; closure.__workletHash = 97398083076; closure.__initData = env0_20; return closure; } function addAttachmentForCommand(a0, a1, a2, a3, a4) { // fn#84986, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:7148, offset: 0x01f5f65d, size: 322 bytes, params: 6, frame: 23 var r13; var applicationCommandManager; var value3; const option = a3.option; const uploadUtilsModule = require(4651) /* metro dependency 4651: UploadUtils */; const getFile = uploadUtilsModule.getFile; let filename = a2.filename; filename = Reflect.apply(getFile, uploadUtilsModule, [{uri: a2.uri, overrideFilename: filename, overrideType: a2.mimeType}]).filename; const target = a3.target; const COMMAND = MediaKeyboardTarget.COMMAND; if (target === COMMAND) { applicationCommandManager = a1.current.getApplicationCommandManager(); if (applicationCommandManager != null) { value3 = false; applicationCommandManager.insertOrJumpCommandOption(option, undefined, value3, {displayText: filename, preferred: true}); r13 = value3; } } const mediaKeyboardDraftType = getMediaKeyboardDraftType(a3.target); let value = importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */; value.remove(a0, a3.option.name, mediaKeyboardDraftType); value = importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */; const addFile = value.addFile; const object = {}; copyDataProperties(object, a2, r13); object['origin'] = a4; object['id'] = option.name; object['filename'] = filename; Reflect.apply(addFile, value, [{channelId: a0, file: object, draftType: mediaKeyboardDraftType, allowOptimization: false}]); } function handleSelectGift(a0, {current}, a2) { // fn#84987, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:7793, offset: 0x01f5f79f, size: 431 bytes, params: 4, frame: 22 const env0_0 = a2; const channelId = SelectedChannelStore.getChannelId(); current.closeCustomKeyboard(); const channel = ChannelStore.getChannel(channelId); const ComponentDispatch = (require(1239) /* metro dependency 1239: ComponentDispatchUtils */).ComponentDispatch; const dispatch = ComponentDispatch.dispatch; const MEDIA_KEYBOARD_GIFT_SELECTED = ComponentActions.MEDIA_KEYBOARD_GIFT_SELECTED; Reflect.apply(dispatch, ComponentDispatch, [MEDIA_KEYBOARD_GIFT_SELECTED]); const object2 = {}; const CHANNEL_TEXT_AREA = AnalyticsSections.CHANNEL_TEXT_AREA; object2.section = CHANNEL_TEXT_AREA; const BUTTON_ICON = AnalyticsObjects.BUTTON_ICON; object2.object = BUTTON_ICON; const GIFT = AnalyticsObjectTypes.GIFT; object2.objectType = GIFT; object2.page = channel?.guild_id != null ? AnalyticsPages.GUILD_CHANNEL : AnalyticsPages.DM_CHANNEL; const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; const track = defaultImport.track; const CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED; const NITRO_GIFTING = ChatInputComponentViewedTypes.NITRO_GIFTING; Reflect.apply(track, defaultImport, [CHAT_INPUT_COMPONENT_VIEWED, {type: NITRO_GIFTING, channel_id: channel?.id, guild_id: channel?.guild_id}]); const openGiftModalModule = require(10381) /* metro dependency 10381: openGiftModal */; openGiftModalModule.openGiftModal({recipientUserId: channel != null && channel.isDM() ? channel.getRecipientId() : undefined, analyticsLocation: object2, analyticsLocations: a0, navigationParams: {presentation: 'card'}, onDismiss: a2?.current != null ? _fun84988 : undefined}); } function handleSelectThread(a0, a1) { // fn#84989, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:8512, offset: 0x01f5f981, size: 204 bytes, params: 3, frame: 20 var moduleValue; const value2 = undefined; const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; const track = defaultImport.track; const CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED; const START_THREAD = ChatInputComponentViewedTypes.START_THREAD; Reflect.apply(track, defaultImport, [CHAT_INPUT_COMPONENT_VIEWED, {type: START_THREAD, channel_id: a0.id, guild_id: a0 == null ? value2 : a0.guild_id}]); if (a0 != null) { a1.current.openSystemKeyboard(); moduleValue = require(477) /* metro dependency 477: PlatformUtils */; if (moduleValue.isIOS()) { a1.current.blur(); } (require(11120) /* metro dependency 11120: navigateToThreadCreation */).navigateToThreadCreation(a0, 'Plus Button'); } return value2; } function cropResultToUploadItem(a0) { // fn#84990, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:8905, offset: 0x01f5fa4d, size: 214 bytes, params: 2, frame: 18 let path = a0.path; let value = path.startsWith('file://'); path = a0.path; const r6 = value ? path : 'file://' + path; value = a0.path.split('/'); value = value.pop(); const object2 = {}; const defaultImport = importDefault(22) /* metro dependency 22 */; object2.id = defaultImport.uniqueId(a0.path); object2.uri = r6; object2.originalUri = r6; object2.mimeType = a0.mime; object2.width = a0.width; object2.height = a0.height; object2.filename = value; const UploadPlatform = (require(4650) /* metro dependency 4650: Upload */).UploadPlatform; const REACT_NATIVE = UploadPlatform.REACT_NATIVE; object2.platform = REACT_NATIVE; return object2; } function showSimpleMediaKeyboard(a0) { // fn#84991, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:9268, offset: 0x01f5fb23, size: 221 bytes, params: 2, frame: 19 var object2; const env0_0 = a0; const getMediaKeyboardDraftTypeBinding = getMediaKeyboardDraftType; const CHAT = MediaKeyboardTarget.CHAT; const mediaKeyboardDraftTypeBinding = getMediaKeyboardDraftTypeBinding(({target: CHAT}).target); const onAttachFileParams = function(a0) { return {channel: a0, uploadLimit: MAX_UPLOAD_COUNT, onDismissKeyboard: _fun84993, onRestoreKeyboard: _fun84994, onSelectFiles: _fun84995}; }; const showMediaKeyboardActionSheetModule = require(11096) /* metro dependency 11096: showMediaKeyboardActionSheet */; const showMediaKeyboardActionSheet = showMediaKeyboardActionSheetModule.showMediaKeyboardActionSheet; object2 = {channel: a0, draftType: mediaKeyboardDraftTypeBinding}; object2.uploadLimit = MAX_UPLOAD_COUNT; object2.disableWhenReachedLimit = true; object2.onAttachPress = function() { var handleAttachFileBinding = handleAttachFile; var object = {}; copyDataProperties(object, onAttachFileParams(require(dependencyMap[9]).UploadOrigin.FILE_ATTACHMENT), require); handleAttachFileBinding(object); }; object2.onPressCamera = function(a0) { var handleCameraDialogBinding = handleCameraDialog; var object = {}; copyDataProperties(object, onAttachFileParams(require(dependencyMap[9]).UploadOrigin.IMAGE_PICKER), require); object['previewType'] = a0; handleCameraDialogBinding(object); }; object2.onPressItem = function({channelId, item, isIncluded}) { require(dependencyMap[19]).hideMediaKeyboardActionSheet(); handleSelectKeyboardItem(channelId, item, isIncluded); }; object2.onViewAll = onViewAll; object2.onManageLimited = function() { var handleLimitedPickerDialogBinding = handleLimitedPickerDialog; var object = {}; object.onDismissKeyboard = require(dependencyMap[19]).hideMediaKeyboardActionSheet; object.onRestoreKeyboard = _fun85001; handleLimitedPickerDialogBinding(object); }; const hideMediaKeyboardActionSheet = showMediaKeyboardActionSheetModule.hideMediaKeyboardActionSheet; object2.onClose = hideMediaKeyboardActionSheet; object2.onBack = hideMediaKeyboardActionSheet; Reflect.apply(showMediaKeyboardActionSheet, showMediaKeyboardActionSheetModule, [object2]); } function _fun84954(a0) { // fn#84954, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:1465, offset: 0x01f5e701, size: 100 bytes, params: 2, frame: 17 const env0_0 = a0; return env0_0 != null && a0.uri != null && a0.uri !== '' && UploadAttachmentStore.findUpload(env0_0, DraftType.ChannelMessage, _fun84955) == null; } function _fun84958(a0) { // fn#84958, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:1907, offset: 0x01f5e82d, size: 203 bytes, params: 2, frame: 20 var environment; var value; var defaultImport; var track; var CHAT_INPUT_COMPONENT_VIEWED; var object2; var channelBinding; var defaultImport2; var launchCamera; if (a0) { value = environment.__proto__; defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; track = defaultImport.track; CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED; channelBinding = channel; Reflect.apply(track, defaultImport, [CHAT_INPUT_COMPONENT_VIEWED, {type: ChatInputComponentViewedTypes.CAMERA, channel_id: channelBinding.id, guild_id: channelBinding.guild_id}]); onDismissKeyboard(); defaultImport2 = importDefault(4673) /* metro dependency 4673: ImagePicker */; launchCamera = defaultImport2.launchCamera; object2 = {'mediaType': 'mixed', 'includeBase64': false, 'quality': null, 'videoQuality': 'high', 'saveToPhotos': null, 'skipProcessing': true}; object2.quality = (require(4660) /* metro dependency 4660: UploadUtils */).getImageCompressionQuality(); object2.saveToPhotos = UnsyncedUserSettingsStore.saveCameraUploadsToDevice; Reflect.apply(launchCamera, defaultImport2, [object2, _fun84959]); } } function _fun84961(a0) { // fn#84961, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:3215, offset: 0x01f5ec1f, size: 381 bytes, params: 2, frame: 19 var environment; var r6; var r2; var value; var defaultImport; var track; var CHAT_INPUT_COMPONENT_VIEWED; var object2; var channelBinding; var id; var getUploads; var value3; var uploadLimitBinding; var value5; var moduleValue; var moduleValue2; if (a0) { value = environment.__proto__; defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; track = defaultImport.track; CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED; channelBinding = channel; id = channelBinding.id; Reflect.apply(track, defaultImport, [CHAT_INPUT_COMPONENT_VIEWED, {type: ChatInputComponentViewedTypes.NATIVE_MEDIA_PICKER, channel_id: id, guild_id: channelBinding.guild_id}]); onDismissKeyboard(); getUploads = UploadAttachmentStore.getUploads; id = channelBinding.id; value3 = Reflect.apply(getUploads, UploadAttachmentStore, [id, draftType]); r6 = includedUploadIds == null ? value3 : value3.filter(function(a0) { return includedUploadIds.includes(a0.id); }); object2 = {'mediaType': 'any', 'includeBase64': false}; uploadLimitBinding = uploadLimit; value5 = 1; if (uploadLimitBinding > value5) { uploadLimitBinding = uploadLimit; moduleValue = require(477) /* metro dependency 477: PlatformUtils */; r2 = uploadLimitBinding - (moduleValue.isIOS() ? r6.filter(_fun84963).length : r6.length); } else { r2 = value5; } object2.selectionLimit = r2; object2.selections = r6.map(_fun84964); moduleValue2 = require(477) /* metro dependency 477: PlatformUtils */; object2.includeExtra = !moduleValue2.isIOS(); object2.skipProcessing = true; value = importDefault(4673) /* metro dependency 4673: ImagePicker */; value.launchImageLibrary(object2, _fun84965); } } async function _fun84971({onDismissKeyboard, onRestoreKeyboard}) { // fn#84971, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:4469, offset: 0x01f5f066, size: 97 bytes, params: 2, frame: 15 if (true) { await undefined; if (false) { return undefined; } onDismissKeyboard(); value = environment.__proto__.__proto__; value = env2_0(env2_2[19]); await value.presentLimitedLibraryPicker(); if (false) { return undefined; } onRestoreKeyboard(); } } async function _fun84975({channel, uploadLimit, extensions, onDismissKeyboard, onRestoreKeyboard, onSelectFiles}) { // fn#84975, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:4734, offset: 0x01f5f10d, size: 314 bytes, params: 2, frame: 25 var environment; if (true) { await undefined; if (false) { return undefined; } onDismissKeyboard(); value = environment.__proto__.__proto__; var binding = env2_1; var binding2 = env2_2; var value4 = binding(binding2[14]); var track = value4.track; var CHAT_INPUT_COMPONENT_VIEWED = env2_11.CHAT_INPUT_COMPONENT_VIEWED; var ATTACH_FILE = env2_16.ATTACH_FILE; Reflect.apply(track, value4, [CHAT_INPUT_COMPONENT_VIEWED, {type: ATTACH_FILE, channel_id: channel.id, guild_id: channel.guild_id}]); value = env2_0(binding2[24]); await value.handleDocumentSelection({pickMultiple: uploadLimit > 1, extensions: extensions}); if (false) { return undefined; } onRestoreKeyboard(); if (value != null) { if (value.length < 1) { return undefined; } var Promise = global.Promise; var all = Promise.all; var Array = global.Array; value = Array.from(value); await Reflect.apply(all, Promise, [value.map(_fun84976())]); value = undefined; if (false) { return value; } onSelectFiles(value); } } } function _fun84982(a0) { // fn#84982, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:6090, offset: 0x01f5f551, size: 49 bytes, params: 2, frame: 13 let value = environment.__proto__; value = require(4658) /* metro dependency 4658: UploadUtils */; return value.doesImageMatchUpload(image, a0); } function _fun84988() { // fn#84988, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:8435, offset: 0x01f5f94e, size: 51 bytes, params: 1, frame: 12 const value = environment.__proto__; return (require(4570) /* metro dependency 4570: setAccessibilityFocusAndroid */).setAccessibilityFocus({ref: importDefault}); } function onAttachFileParams(a0) { // fn#84992, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:9379, owner: showSimpleMediaKeyboard.onAttachFileParams, offset: 0x01f5fc00, size: 72 bytes, params: 2, frame: 3 return {channel: a0, uploadLimit: MAX_UPLOAD_COUNT, onDismissKeyboard: onDismissKeyboard_84993, onRestoreKeyboard: onRestoreKeyboard_84994, onSelectFiles: onSelectFiles_84995}; } function onViewAll() { // fn#84999, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:10022, owner: showSimpleMediaKeyboard.onViewAll, offset: 0x01f5fd87, size: 82 bytes, params: 1, frame: 16 const handleViewAllDialogBinding = handleViewAllDialog; const object2 = {}; const onAttachFileParamsBinding = onAttachFileParams; const UploadOrigin = (require(4650) /* metro dependency 4650: Upload */).UploadOrigin; const IMAGE_PICKER = UploadOrigin.IMAGE_PICKER; copyDataProperties(object2, onAttachFileParamsBinding(IMAGE_PICKER), require); object2['draftType'] = env0_1; handleViewAllDialogBinding(object2); } function onManageLimited() { // fn#85000, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:10137, owner: showSimpleMediaKeyboard.onManageLimited, offset: 0x01f5fdd9, size: 63 bytes, params: 1, frame: 13 const handleLimitedPickerDialogBinding = handleLimitedPickerDialog; const object2 = {}; object2.onDismissKeyboard = (require(11096) /* metro dependency 11096: showMediaKeyboardActionSheet */).hideMediaKeyboardActionSheet; object2.onRestoreKeyboard = onRestoreKeyboard_85001; handleLimitedPickerDialogBinding(object2); } function _fun84955(a0) { // fn#84955, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:1541, offset: 0x01f5e765, size: 49 bytes, params: 2, frame: 13 const value = environment.__proto__.__proto__; return (require(4658) /* metro dependency 4658: UploadUtils */).doesImageMatchUpload(env0_0, a0); } function _fun84959(a0) { // fn#84959, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:2203, offset: 0x01f5e8f8, size: 576 bytes, params: 2, frame: 20 var r9; var r0; var value; var property; var uri; var type; var fileName; var object2; var value10; var value11; var defaultImport; if (a0.didCancel) { value = environment.__proto__; onRestoreKeyboard(); } else if (a0.errorCode == null) { if (a0.assets != null) { if (a0.assets.length > 0) { property = a0.assets[0]; if (property != null) { uri = property.uri; if (uri != null) { if (property.height != null) { if (property.width != null) { type = property.type; if (type != null) { r0 = type; } else { fileName = property.fileName; r9 = fileName == null ? undefined : fileName.split('.').pop(); r0 = r9 != null && property.fileType != null ? ('' + property.fileType + '/' + r9).toLowerCase() : 'image/jpeg'; } object2 = {}; object2.id = property.id; uri = property.uri; object2.uri = uri; uri = property.uri; object2.originalUri = uri; object2.width = property.width; object2.height = property.height; fileName = property.fileName; object2.filename = fileName == null ? 'camera_upload.' + (r0.split('/')[1] ?? 'jpeg') : property.fileName !== '' ? property.fileName : 'camera_upload.' + (r0.split('/')[1] ?? 'jpeg'); object2.playableDuration = property.duration; value10 = environment.__proto__.__proto__; object2.platform = (require(4650) /* metro dependency 4650: Upload */).UploadPlatform.REACT_NATIVE; object2.createdUsingInAppCamera = true; object2.mimeType = r0; value11 = environment.__proto__; onSelectFiles([object2]); defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; defaultImport.track(AnalyticEvents.IN_APP_CAMERA_USED, {camera_view: InAppCameraUsedViews.FULLY_EXPANDED, camera_preview_type: previewType}); onRestoreKeyboard(); } } } } } } } } function _fun84963({origin}) { // fn#84963, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:3502, offset: 0x01f5edb7, size: 52 bytes, params: 2, frame: 12 const UploadOrigin = (require(4650) /* metro dependency 4650: Upload */).UploadOrigin; const IMAGE_PICKER = UploadOrigin.IMAGE_PICKER; return origin !== IMAGE_PICKER; } function _fun84965(a0) { // fn#84965, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:3682, offset: 0x01f5edeb, size: 349 bytes, params: 2, frame: 21 var environment; var r5; var errorCode; var value2; var length; var assets; var replaceSelection; var binding; var forEach; var items2; var value3; var _createForOfIteratorHelperLoose_84950Binding; var value4; var value5; var done; var value6; var uri; var push; var object2; var id; var mimeType; var width; var height; var fileName; var duration; var UploadPlatform; var REACT_NATIVE; var value7; const env0_0 = a0; onRestoreKeyboard(); reducibleJoin13: while (true) { if (a0.didCancel) { break reducibleJoin13; } errorCode = a0.errorCode; if (errorCode != null) { break reducibleJoin13; } value2 = environment; length = env0_0.length; if (length === 0) { if (a0.assets == null) { break reducibleJoin13; } if (a0.assets.length === 0) { break reducibleJoin13; } } replaceSelection = a0.replaceSelection; reducibleJoin7: while (true) { if (replaceSelection) { binding = env0_0; forEach = binding.forEach; Reflect.apply(forEach, binding, [_fun84966]); break reducibleJoin7; } break reducibleJoin7; } items2 = []; value3 = environment.__proto__.__proto__; _createForOfIteratorHelperLoose_84950Binding = _createForOfIteratorHelperLoose_84950; assets = a0.assets; value4 = _createForOfIteratorHelperLoose_84950Binding(assets); value5 = value4(); done = value5.done; if (!done) { r5 = value5; reducibleLoop8: while (true) { value6 = r5.value; uri = value6.uri; reducibleJoin10: while (true) { if (uri == null) { break reducibleJoin10; } push = items2.push; object2 = {}; id = value6.id; object2.id = id; uri = value6.uri; object2.uri = uri; uri = value6.uri; object2.originalUri = uri; mimeType = value6.mimeType; object2.mimeType = mimeType; width = value6.width; object2.width = width; height = value6.height; object2.height = height; fileName = value6.fileName; object2.filename = fileName; duration = value6.duration; object2.playableDuration = duration; UploadPlatform = (require(4650) /* metro dependency 4650: Upload */).UploadPlatform; REACT_NATIVE = UploadPlatform.REACT_NATIVE; object2.platform = REACT_NATIVE; Reflect.apply(push, items2, [object2]); break reducibleJoin10; } value7 = value4(); done = value7.done; if (done) { break reducibleLoop8; } r5 = value7; continue reducibleLoop8; } } length = items2.length; if (length > 0) { onSelectFiles(items2); break reducibleJoin13; } break reducibleJoin13; } } function _fun84976() { // fn#84976, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:5099, offset: 0x01f5f247, size: 36 bytes, params: 1, frame: 12 const env0_0 = env3_3(_fun84978); return _fun84979; } function onAttachFileParamsOnDismissKeyboard() { // fn#84993, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:9426, owner: showSimpleMediaKeyboard.onAttachFileParams.onDismissKeyboard, offset: 0x01f5fc48, size: 37 bytes, params: 1, frame: 11 const value = environment.__proto__.__proto__; return (require(11096) /* metro dependency 11096: showMediaKeyboardActionSheet */).hideMediaKeyboardActionSheet(); } function onAttachFileParamsOnRestoreKeyboard() { // fn#84994, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:9489, owner: showSimpleMediaKeyboard.onAttachFileParams.onRestoreKeyboard, offset: 0x01f5fc6d, size: 23 bytes, params: 1, frame: 11 showSimpleMediaKeyboard(env1_0); } function onAttachFileParamsOnSelectFiles(a0) { // fn#84995, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:9534, owner: showSimpleMediaKeyboard.onAttachFileParams.onSelectFiles, offset: 0x01f5fc84, size: 40 bytes, params: 2, frame: 15 addImagesFromPicker(env1_0.id, a0, env0_0); } function _fun84966(a0) { // fn#84966, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:3810, offset: 0x01f5ef48, size: 167 bytes, params: 2, frame: 18 var environment; var defaultImport; var remove; var value6; const env0_0 = a0; const origin = a0.origin; const UploadOrigin = (require(4650) /* metro dependency 4650: Upload */).UploadOrigin; const IMAGE_PICKER = UploadOrigin.IMAGE_PICKER; if (!(origin !== IMAGE_PICKER || env0_0.assets != null && env0_0.assets.some(_fun84967))) { defaultImport = importDefault(7879) /* metro dependency 7879: UploadAttachmentActionCreators */; remove = defaultImport.remove; value6 = environment.__proto__.__proto__; Reflect.apply(remove, defaultImport, [channel.id, a0.id, DraftType.ChannelMessage]); } } function* _fun84978(a0) { // fn#84978, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:5119, offset: 0x01f5f276, size: 317 bytes, params: 2, frame: 24 if (false) { return undefined; } const uri = a0.uri; value = environment.__proto__.__proto__.__proto__.__proto__.__proto__; let binding = env5_0; const value3 = undefined; const value4 = binding(env5_2[16]); const getImageDimensionsIfMissing = value4.getImageDimensionsIfMissing; yield Reflect.apply(getImageDimensionsIfMissing, value4, [uri, value3, value3, a0.name ?? value3]); const value5 = undefined; if (false) { return value5; } const width = value5.width; const height = value5.height; const object2 = {}; object2.id = env5_1(env5_2[25]).uniqueId(uri); object2.uri = uri; object2.originalUri = uri; object2.filename = a0.name ?? uri.split('/').at(-1); object2.mimeType = a0.type ?? value3; object2.channelId = env2_0.id; binding = env5_0; const binding2 = env5_2; const UploadPlatform = binding(binding2[9]).UploadPlatform; const REACT_NATIVE = UploadPlatform.REACT_NATIVE; object2.platform = REACT_NATIVE; const UploadOrigin = binding(binding2[9]).UploadOrigin; const FILE_ATTACHMENT = UploadOrigin.FILE_ATTACHMENT; object2.origin = FILE_ATTACHMENT; object2.width = width; object2.height = height; return object2; } function _fun84967(a0) { // fn#84967, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11281:3895, offset: 0x01f5efef, size: 49 bytes, params: 2, frame: 13 const value = environment.__proto__.__proto__.__proto__.__proto__; return (require(4658) /* metro dependency 4658: UploadUtils */).doesImageMatchUpload(a0, env0_0); }