/* Metro module 11348; source: modules/messages/native/handlers/handleMessagesTapImage.tsx; dependencies: [4833, 3793, 1878, 661, 9548, 9877, 679, 9546, 3853, 4633, 9544, 4805, 6647, 2] */ function _fun86899(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#86899, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11534:6, offset: 0x01fa6531, size: 172 bytes, params: 8, frame: 19 const env0_0 = require; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const referencedMessageStore = importDefault(4833) /* metro dependency 4833: ReferencedMessageStore */; const relationshipStore = importDefault(3793) /* metro dependency 3793: RelationshipStore */; const userStore = importDefault(1878) /* metro dependency 1878: UserStore */; const env0_6 = (require(661) /* metro dependency 661: Constants */).MessageTypes; (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/messages/native/handlers/handleMessagesTapImage.tsx'); exports.handleMessagesTapImage = handleMessagesTapImage; } function handleMessagesTapImage({tapImageData, allowWithinModal, message, messageChannel, selectedChannelId, showContextName}) { // fn#86900, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11534:275, offset: 0x01fa65dd, size: 1476 bytes, params: 2, frame: 42 var environment; var r17; var r16; var r26; var r23; var components; var r6; var r7; var value2; var moduleValue; var markPortalAlive; var moduleValue2; var messageReference; var getMessageByReference; var message2; var property; var length; var moduleValue3; var extractMediaFromAttachment; var guild_id; var url; var moduleValue4; var value6; var value7; var moduleValue5; var flattenSource; var value8; var accessoryType; var mediaViewIndex; var mediaIndex; var value9; var noCarousel; var moduleValue6; var setMediaSourcePortal; var value10; var object; var moduleValue7; var embeds; var find; var value11; var moduleValue8; var extractMediaSourcesFromComponent; var moduleValue9; var asComponentId; var value12; var sources; var initialIndex; var moduleValue10; var moduleValue11; var extractMediaSourcesFromEmbed; var value13; var binding; var moduleValue12; var some; var value14; var moduleValue13; var openMediaModal; var id; var moduleValue14; var computeChannelName; var channelName; var moduleValue15; var getChannelIcon; var value15; var defaultImport; var Error; var concat; const index = tapImageData.index; const type2 = tapImageData.type; const layout = tapImageData.layout; const portal = tapImageData.portal; const embedIndex = tapImageData.embedIndex; const componentId = tapImageData.componentId; const componentMediaIndex = tapImageData.componentMediaIndex; const embedId = tapImageData.embedId; const value = undefined; reducibleJoin2: while (true) { if (portal == null) { break reducibleJoin2; } value2 = environment; moduleValue = require(9548) /* metro dependency 9548: NativePortalView */; markPortalAlive = moduleValue.markPortalAlive; Reflect.apply(markPortalAlive, moduleValue, [portal]); break reducibleJoin2; } if (allowWithinModal !== true) { moduleValue2 = require(9877) /* metro dependency 9877: isAlertOrActionSheetOpen */; reducibleJoin4: while (true) { if (moduleValue2.isAlertOrActionSheetOpen(selectedChannelId)) { return value; } break reducibleJoin4; } } if (type2 !== 'attachment') { reducibleJoin8: while (true) { if (type2 === 'embed') { break reducibleJoin8; } if (type2 === 'sticker') { break reducibleJoin8; } if (type2 !== 'component') { Error = global.Error; concat = global.HermesInternal.concat; throw new Error('Unsupported thumbnail type: ' + type2); } break reducibleJoin8; } } let type = message.type; const THREAD_STARTER_MESSAGE = MessageTypes.THREAD_STARTER_MESSAGE; reducibleJoin11: while (true) { if (type !== THREAD_STARTER_MESSAGE) { r17 = message; break reducibleJoin11; } messageReference = message.messageReference; if (messageReference == null) { r17 = message; break reducibleJoin11; } getMessageByReference = ReferencedMessageStore.getMessageByReference; messageReference = message.messageReference; message2 = Reflect.apply(getMessageByReference, ReferencedMessageStore, [messageReference]).message; if (message2 == null) { r17 = message; break reducibleJoin11; } r17 = message2; break reducibleJoin11; } messageReference = r17.messageReference; reducibleJoin13: while (true) { if (messageReference == null) { type = value; break reducibleJoin13; } type = messageReference.type; break reducibleJoin13; } const MessageReferenceTypes = (require(679) /* metro dependency 679: MessageReferenceTypes */).MessageReferenceTypes; const FORWARD = MessageReferenceTypes.FORWARD; if (type !== FORWARD) { r16 = r17; } else { property = r17.messageSnapshots[0]; reducibleJoin16: while (true) { if (property == null) { message = value; break reducibleJoin16; } message = property.message; break reducibleJoin16; } reducibleJoin17: while (true) { if (message == null) { return value; } r16 = message; break reducibleJoin17; } } const value5 = r17.attachments.filter(_fun86901); if (type2 === 'attachment') { length = value5.length; reducibleJoin22: while (true) { if (index < length) { property = value5[index]; moduleValue3 = require(9546) /* metro dependency 9546: MediaSourceUtil */; extractMediaFromAttachment = moduleValue3.extractMediaFromAttachment; guild_id = messageChannel.guild_id; if (Reflect.apply(extractMediaFromAttachment, moduleValue3, [property, r17, index, guild_id]) != null) { break reducibleJoin22; } url = property.url; if (url == null) { break reducibleJoin22; } url = property.url; if (url !== '') { defaultImport = importDefault(3853) /* metro dependency 3853: Linking */; defaultImport.openURL(property.url); return value; } break reducibleJoin22; } break reducibleJoin22; } } let env0_1 = -1; if (type2 === 'embed') { reducibleJoin24: while (true) { if (embedIndex != null) { embeds = r16.embeds; property = embeds[index]; env0_1 = embedIndex; moduleValue11 = require(9546) /* metro dependency 9546: MediaSourceUtil */; extractMediaSourcesFromEmbed = moduleValue11.extractMediaSourcesFromEmbed; guild_id = messageChannel.guild_id; value13 = Reflect.apply(extractMediaSourcesFromEmbed, moduleValue11, [r17, r16, property, index, guild_id]); binding = env0_1; length = value13.length; reducibleJoin51: while (true) { if (binding < length) { moduleValue12 = require(9546) /* metro dependency 9546: MediaSourceUtil */; setMediaSourcePortal = moduleValue12.setMediaSourcePortal; Reflect.apply(setMediaSourcePortal, moduleValue12, [value13[env0_1], portal]); r6 = value13; break reducibleJoin51; } r6 = value13; break reducibleJoin51; } some = r6.some; value14 = Reflect.apply(some, r6, [_fun86904]); reducibleJoin60: while (true) { if (env0_1 === -1) { break reducibleJoin60; } moduleValue13 = require(9544) /* metro dependency 9544: openMediaModal */; openMediaModal = moduleValue13.openMediaModal; object = {disableDownload: value14, initialSources: r6, initialIndex: env0_1, originViewOrOriginLayout: layout, analyticsSource: 'Channel'}; id = messageChannel.id; object.channelId = id; reducibleJoin54: while (true) { if (showContextName) { moduleValue14 = require(4805) /* metro dependency 4805: useChannelName */; computeChannelName = moduleValue14.computeChannelName; channelName = Reflect.apply(computeChannelName, moduleValue14, [messageChannel, UserStore, RelationshipStore, false]); r7 = channelName; break reducibleJoin54; } r7 = value; break reducibleJoin54; } object.contextName = r7; reducibleJoin56: while (true) { if (showContextName) { moduleValue15 = require(6647) /* metro dependency 6647: ChannelUtils */; getChannelIcon = moduleValue15.getChannelIcon; value15 = Reflect.apply(getChannelIcon, moduleValue15, [messageChannel]); r7 = value15; break reducibleJoin56; } r7 = value; break reducibleJoin56; } object.contextIcon = r7; Reflect.apply(openMediaModal, moduleValue13, [object]); break reducibleJoin60; } return value; } break reducibleJoin24; } } if (type2 === 'component') { if (componentId == null) { return null; } reducibleJoin42: while (true) { reducibleJoin41: while (true) { if (embedId == null) { break reducibleJoin41; } if (embedId === '') { break reducibleJoin41; } embeds = r16.embeds; find = embeds.find; value11 = Reflect.apply(find, embeds, [function({id}) { return id === embedId; }]); reducibleJoin40: while (true) { if (value11 == null) { components = value; break reducibleJoin40; } components = value11.components; break reducibleJoin40; } break reducibleJoin42; } components = r16.components; break reducibleJoin42; } reducibleJoin51: while (true) { reducibleJoin47: while (true) { if (components == null) { break reducibleJoin47; } length = components.length; if (length === 0) { break reducibleJoin47; } moduleValue8 = require(9546) /* metro dependency 9546: MediaSourceUtil */; extractMediaSourcesFromComponent = moduleValue8.extractMediaSourcesFromComponent; guild_id = messageChannel.guild_id; moduleValue9 = require(4633) /* metro dependency 4633: InteractionComponentTypes */; asComponentId = moduleValue9.asComponentId; value12 = Reflect.apply(extractMediaSourcesFromComponent, moduleValue8, [r17, components, guild_id, Reflect.apply(asComponentId, moduleValue9, [componentId]), componentMediaIndex]); if (value12 == null) { return value; } sources = value12.sources; initialIndex = value12.initialIndex; env0_1 = initialIndex; moduleValue10 = require(9546) /* metro dependency 9546: MediaSourceUtil */; setMediaSourcePortal = moduleValue10.setMediaSourcePortal; Reflect.apply(setMediaSourcePortal, moduleValue10, [sources[env0_1], portal]); r6 = sources; break reducibleJoin51; } return value; } } else { moduleValue4 = require(9546) /* metro dependency 9546: MediaSourceUtil */; value6 = moduleValue4.extractMediaSourcesFromMessage(r17, r16, messageChannel.guild_id); length = value6.length; value7 = 0; if (value7 < length) { r26 = value7; reducibleLoop26: while (true) { moduleValue5 = require(9546) /* metro dependency 9546: MediaSourceUtil */; flattenSource = moduleValue5.flattenSource; value8 = Reflect.apply(flattenSource, moduleValue5, [value6[r26]]); if (value8 != null) { accessoryType = value8.accessoryType; reducibleJoin31: while (true) { if (accessoryType !== type2) { break reducibleJoin31; } mediaViewIndex = value8.mediaViewIndex; reducibleJoin30: while (true) { if (mediaViewIndex != null) { r23 = mediaViewIndex; break reducibleJoin30; } mediaIndex = value8.mediaIndex; r23 = mediaIndex; break reducibleJoin30; } if (r23 === index) { noCarousel = value8.noCarousel; if (noCarousel) { property = value6[r26]; object = [property]; env0_1 = value7; moduleValue7 = require(9546) /* metro dependency 9546: MediaSourceUtil */; setMediaSourcePortal = moduleValue7.setMediaSourcePortal; Reflect.apply(setMediaSourcePortal, moduleValue7, [object[value7], portal]); r6 = object; } else { env0_1 = r26; moduleValue6 = require(9546) /* metro dependency 9546: MediaSourceUtil */; setMediaSourcePortal = moduleValue6.setMediaSourcePortal; Reflect.apply(setMediaSourcePortal, moduleValue6, [value6[r26], portal]); value10 = value6.filter(_fun86903); r6 = value10; } break reducibleLoop26; } break reducibleJoin31; } } value9 = typeof r26 === 'bigint' ? r26 + 1n : +r26 + 1; length = value6.length; if (value9 < length) { r26 = value9; continue reducibleLoop26; } r6 = value6; break reducibleLoop26; } } else { r6 = value6; } } reducibleJoin60: while (true) { if (env0_1 === -1) { break reducibleJoin60; } moduleValue13 = require(9544) /* metro dependency 9544: openMediaModal */; openMediaModal = moduleValue13.openMediaModal; object = {disableDownload: r6.some(_fun86904), initialSources: r6, initialIndex: env0_1, originViewOrOriginLayout: layout, analyticsSource: 'Channel'}; id = messageChannel.id; object.channelId = id; reducibleJoin54: while (true) { if (showContextName) { moduleValue14 = require(4805) /* metro dependency 4805: useChannelName */; computeChannelName = moduleValue14.computeChannelName; channelName = Reflect.apply(computeChannelName, moduleValue14, [messageChannel, UserStore, RelationshipStore, false]); r7 = channelName; break reducibleJoin54; } r7 = value; break reducibleJoin54; } object.contextName = r7; reducibleJoin56: while (true) { if (showContextName) { moduleValue15 = require(6647) /* metro dependency 6647: ChannelUtils */; getChannelIcon = moduleValue15.getChannelIcon; value15 = Reflect.apply(getChannelIcon, moduleValue15, [messageChannel]); r7 = value15; break reducibleJoin56; } r7 = value; break reducibleJoin56; } object.contextIcon = r7; Reflect.apply(openMediaModal, moduleValue13, [object]); break reducibleJoin60; } return value; } function _fun86901(a0) { // fn#86901, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11534:1051, offset: 0x01fa6ba1, size: 44 bytes, params: 2, frame: 11 let value = environment.__proto__; value = require(9546) /* metro dependency 9546: MediaSourceUtil */; return !value.isThumbnailAttachment(a0); } function _fun86903(a0, a1) { // fn#86903, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11534:2104, offset: 0x01fa6bcd, size: 96 bytes, params: 3, frame: 12 var binding; let value = environment.__proto__; value = require(9546) /* metro dependency 9546: MediaSourceUtil */; value = value.flattenSource(a0); const r0 = value != null && !value.noCarousel; if (!r0 && env0_1 >= a1) { binding = env0_1; env0_1 = typeof binding === 'bigint' ? binding - 1n : +binding - 1; } return r0; } function _fun86904(a0) { // fn#86904, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11534:2216, offset: 0x01fa6c2d, size: 59 bytes, params: 2, frame: 13 let value = environment.__proto__; value = require(9546) /* metro dependency 9546: MediaSourceUtil */; value = value.flattenSource(a0, true); return value != null && value.disableDownload; }