2026-07-25 08:10:48 +00:00
// Module ID: 9431
2026-07-27 11:26:19 +00:00
// Function ID: 73577
2026-07-20 16:05:17 +00:00
// Name: _createForOfIteratorHelperLoose
2026-07-25 08:10:48 +00:00
// Dependencies: [31, 4116, 4204, 653, 5920, 5969, 9432, 5994, 4120, 5968, 9433, 9434, 4117, 2]
2026-07-20 16:05:17 +00:00
// Exports: handleAnnouncementMessageViewTracking, handleOfficialMessageViewTracking, handleRichPresenceInviteEmbedViewTracking, handleVoiceInviteEmbedViewTracking, useShouldTrackAnnouncementMessageViews, useShouldTrackOfficialMessageViews, useShouldTrackRichPresenceInviteEmbedViews, useShouldTrackVoiceInviteEmbedViews
2026-07-25 08:10:48 +00:00
// Module 9431 (_createForOfIteratorHelperLoose)
2026-07-23 10:11:24 +00:00
import result from "result" ;
import _isNativeReflectConstruct from "_isNativeReflectConstruct" ;
import closure_5 from "_isNativeReflectConstruct" ;
import ME from "ME" ;
import { LinkType } from "LinkType" ;
import { InviteTypes } from "InviteSendStates" ;
let closure_6 ;
let closure_7 ;
let closure_8 ;
let closure_9 ;
const require = arg1 ;
function _createForOfIteratorHelperLoose ( iterable ) {
let closure_0 = iterable ;
iterable = "undefined" !== typeof Symbol ;
if ( iterable ) {
2026-07-20 16:05:17 +00:00
const _Symbol = Symbol ;
2026-07-23 10:11:24 +00:00
iterable = iterable [ Symbol . iterator ] ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if ( ! iterable ) {
iterable = iterable [ Symbol . iterator ] ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if ( iterable ) {
const iter = iterable . call ( iterable ) ;
2026-07-20 16:05:17 +00:00
const next = iter . next ;
return next . bind ( iter ) ;
} else {
const _Array = Array ;
2026-07-23 10:11:24 +00:00
let tmp = iterable ;
if ( ! Array . isArray ( iterable ) ) {
2026-07-20 16:05:17 +00:00
let tmp2 ;
2026-07-23 10:11:24 +00:00
if ( iterable ) {
if ( "string" === typeof iterable ) {
tmp2 = _arrayLikeToArray ( iterable , undefined ) ;
2026-07-20 16:05:17 +00:00
} else {
const toString = { } . toString ;
2026-07-23 10:11:24 +00:00
const substr = toString . call ( iterable ) . slice ( 8 , - 1 ) ;
2026-07-20 16:05:17 +00:00
let name = substr ;
if ( tmp3 ) {
2026-07-23 10:11:24 +00:00
name = iterable . constructor . name ;
2026-07-20 16:05:17 +00:00
}
if ( "Map" !== name ) {
if ( "Set" !== name ) {
if ( "Arguments" === name ) {
2026-07-23 10:11:24 +00:00
let arr = _arrayLikeToArray ( iterable , undefined ) ;
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/ ;
2026-07-20 16:05:17 +00:00
}
}
tmp2 = arr ;
}
const _Array2 = Array ;
2026-07-23 10:11:24 +00:00
arr = Array . from ( iterable ) ;
const callResult = toString . call ( iterable ) ;
tmp3 = "Object" === substr && iterable . constructor ;
2026-07-20 16:05:17 +00:00
}
}
tmp = tmp2 ;
if ( ! tmp2 ) {
const _TypeError = TypeError ;
const typeError = new TypeError ( "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ;
throw typeError ;
}
}
if ( tmp ) {
2026-07-23 10:11:24 +00:00
closure_0 = tmp ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
let c1 = 0 ;
2026-07-20 16:05:17 +00:00
return ( ) = > {
2026-07-23 10:11:24 +00:00
if ( closure_1 >= length . length ) {
2026-07-20 16:05:17 +00:00
let obj = { done : true } ;
} else {
obj = { done : false } ;
closure_1 = tmp3 + 1 ;
2026-07-23 10:11:24 +00:00
obj . value = length [ + closure_1 ] ;
2026-07-20 16:05:17 +00:00
}
return obj ;
} ;
}
}
function _arrayLikeToArray ( arg0 , arg1 ) {
let length ;
if ( tmp ) {
length = arg0 . length ;
}
const ArrayResult = Array ( length ) ;
for ( let num = 0 ; num < length ; num = num + 1 ) {
ArrayResult [ num ] = arg0 [ num ] ;
}
return ArrayResult ;
}
function getVoiceInviteEmbedRenderInfo ( state ) {
if ( state . state !== constants2 . RESOLVING ) {
if ( state . state !== constants2 . EXPIRED ) {
if ( state . state !== constants2 . BANNED ) {
if ( state . state !== constants2 . ERROR ) {
if ( obj5 . getInviteType ( state ) !== InviteTypes . GUILD ) {
return null ;
} else {
2026-07-25 08:10:48 +00:00
const guildInviteExtendedType = require ( 5968 ) /* isGroupDMInvite */ . getGuildInviteExtendedType ( state ) ;
if ( guildInviteExtendedType !== require ( 5968 ) /* isGroupDMInvite */ . GuildInviteExtendedType . VOICE_CHANNEL ) {
2026-07-20 16:05:17 +00:00
return null ;
} else {
const guild = state . guild ;
let id ;
if ( null != guild ) {
id = guild . id ;
}
let tmp2 = null ;
if ( null != id ) {
let obj = { } ;
obj = { guildId : id , location : "mobile_invite_embed_impression" } ;
2026-07-25 08:10:48 +00:00
let enabled = require ( 9433 ) /* items */ . getVoiceChannelListInviteExperiment ( obj ) . enabled ;
2026-07-20 16:05:17 +00:00
if ( enabled ) {
2026-07-25 08:10:48 +00:00
enabled = require ( 9434 ) /* resolveVoiceChannelListInviteEmbedData */ . canShowVoiceChannelListInviteEmbed ( state ) ;
const obj4 = require ( 9434 ) /* resolveVoiceChannelListInviteEmbedData */ ;
2026-07-20 16:05:17 +00:00
}
obj . treatmentRendered = enabled ;
tmp2 = obj ;
2026-07-25 08:10:48 +00:00
const obj2 = require ( 9433 ) /* items */ ;
2026-07-20 16:05:17 +00:00
}
return tmp2 ;
}
2026-07-25 08:10:48 +00:00
const obj6 = require ( 5968 ) /* isGroupDMInvite */ ;
2026-07-20 16:05:17 +00:00
}
2026-07-25 08:10:48 +00:00
obj5 = require ( 5968 ) /* isGroupDMInvite */ ;
2026-07-20 16:05:17 +00:00
}
}
}
}
return null ;
}
2026-07-23 10:11:24 +00:00
( { ChannelTypes : closure_6 , GuildFeatures : closure_7 , InviteStates : closure_8 , MessageFlags : closure_9 } = ME ) ;
let result = require ( "_isNativeReflectConstruct" ) . fileFinishedImporting ( "modules/messages/native/MessageImpressionAnalyticsHelpers.tsx" ) ;
2026-07-20 16:05:17 +00:00
export const useShouldTrackAnnouncementMessageViews = function useShouldTrackAnnouncementMessageViews ( messages ) {
let channel ;
let guild ;
( { guild , channel } = messages ) ;
messages = messages . messages ;
const isMessagesReady = messages . isMessagesReady ;
let React ;
let hasItem ;
if ( null != guild ) {
const features = guild . features ;
if ( null != features ) {
hasItem = features . has ( constants . COMMUNITY ) ;
}
}
React = tmp3 ;
const items = [ , , , , ] ;
( { type : arr [ 0 ] , guild_id : arr [ 1 ] } = channel ) ;
items [ 2 ] = null != hasItem && hasItem ;
items [ 3 ] = isMessagesReady ;
items [ 4 ] = messages ;
return React . useMemo ( ( ) = > {
2026-07-23 10:11:24 +00:00
let tmp = channel . type === outer1_6 . GUILD_ANNOUNCEMENT && c3 ;
2026-07-20 16:05:17 +00:00
let someResult = isMessagesReady ;
if ( isMessagesReady ) {
someResult = messages . some ( ( messageReference ) = > {
let hasFlagResult = null != messageReference . messageReference && null != messageReference . webhookId ;
if ( hasFlagResult ) {
2026-07-23 10:11:24 +00:00
hasFlagResult = messageReference . hasFlag ( outer2_9 . IS_CROSSPOST ) ;
2026-07-20 16:05:17 +00:00
}
if ( hasFlagResult ) {
2026-07-23 10:11:24 +00:00
hasFlagResult = null != outer1_0 . guild_id ;
2026-07-20 16:05:17 +00:00
}
return hasFlagResult ;
} ) ;
}
if ( ! tmp ) {
tmp = someResult ;
}
return tmp ;
} , items ) ;
} ;
export const useShouldTrackRichPresenceInviteEmbedViews = function useShouldTrackRichPresenceInviteEmbedViews ( messages ) {
messages = messages . messages ;
const isMessagesReady = messages . isMessagesReady ;
const items = [ messages , isMessagesReady ] ;
return React . useMemo ( ( ) = > {
let someResult = isMessagesReady ;
if ( isMessagesReady ) {
someResult = messages . some ( ( activity ) = > null != activity . activity && null != activity . activity . party_id && null != activity . application ) ;
}
return someResult ;
} , items ) ;
} ;
export const handleAnnouncementMessageViewTracking = function handleAnnouncementMessageViewTracking ( arr , shouldTrackAnnouncementMessageViews , guildId , channel ) {
2026-07-23 10:11:24 +00:00
const _require = guildId ;
2026-07-20 16:05:17 +00:00
const importDefault = channel ;
if ( shouldTrackAnnouncementMessageViews ) {
if ( null != guildId ) {
const items = [ ] ;
2026-07-23 10:11:24 +00:00
const item = arr . forEach ( ( message ) = > {
2026-07-20 16:05:17 +00:00
message = message . message ;
const messageReference = message . messageReference ;
let guild_id ;
if ( null != messageReference ) {
guild_id = messageReference . guild_id ;
}
let hasFlagResult = null != guild_id && null != message . webhookId ;
if ( hasFlagResult ) {
2026-07-23 10:11:24 +00:00
hasFlagResult = message . hasFlag ( outer1_9 . IS_CROSSPOST ) ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if ( ! message . hasFlag ( outer1_9 . EPHEMERAL ) ) {
2026-07-20 16:05:17 +00:00
if ( hasFlagResult ) {
if ( null != message . messageReference ) {
let id = message . messageReference . channel_id ;
}
if ( hasFlagResult ) {
const messageReference2 = message . messageReference ;
let guild_id1 ;
if ( null != messageReference2 ) {
guild_id1 = messageReference2 . guild_id ;
}
if ( null != guild_id1 ) {
guild_id = message . messageReference . guild_id ;
}
if ( ! hasFlagResult ) {
2026-07-23 10:11:24 +00:00
const obj = { type : guildId ( items [ 6 ] ) . MessageViewTrackingType . ANNOUNCEMENT , messageId : message.id , channelId : user.id , guildId , sourceChannelId : id , sourceGuildId : guild_id } ;
2026-07-20 16:05:17 +00:00
message = items . push ( obj ) ;
}
const message_id = message . messageReference . message_id ;
}
2026-07-23 10:11:24 +00:00
guild_id = guildId ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
id = user . id ;
2026-07-20 16:05:17 +00:00
}
} ) ;
2026-07-23 10:11:24 +00:00
const result = importDefault ( items [ 6 ] ) . handleMessageListVisibilityChange ( items , _require ( items [ 6 ] ) . MessageViewTrackingType . ANNOUNCEMENT ) ;
let obj = importDefault ( items [ 6 ] ) ;
2026-07-20 16:05:17 +00:00
}
}
} ;
export const handleRichPresenceInviteEmbedViewTracking = function handleRichPresenceInviteEmbedViewTracking ( arr , shouldTrackRichPresenceInviteEmbedViews , guildId , channel ) {
2026-07-23 10:11:24 +00:00
const _require = guildId ;
2026-07-20 16:05:17 +00:00
const importDefault = channel ;
if ( shouldTrackRichPresenceInviteEmbedViews ) {
const items = [ ] ;
const item = arr . forEach ( ( message ) = > {
message = message . message ;
2026-07-23 10:11:24 +00:00
let hasFlagResult = message . hasFlag ( outer1_9 . EPHEMERAL ) ;
2026-07-20 16:05:17 +00:00
if ( ! hasFlagResult ) {
hasFlagResult = null == message . activity ;
}
if ( ! hasFlagResult ) {
hasFlagResult = null == message . activity . party_id ;
}
if ( ! hasFlagResult ) {
hasFlagResult = null == message . application ;
}
if ( ! hasFlagResult ) {
2026-07-23 10:11:24 +00:00
const obj = { type : guildId ( items [ 6 ] ) . MessageViewTrackingType . APP_EMBED , messageId : message.id , channelId : id.id , guildId , applicationId : message.application.id , linkType : outer1_10.RICH_PRESENCE_INVITE } ;
2026-07-20 16:05:17 +00:00
items . push ( obj ) ;
}
} ) ;
2026-07-23 10:11:24 +00:00
const result = importDefault ( items [ 6 ] ) . handleMessageListVisibilityChange ( items , _require ( items [ 6 ] ) . MessageViewTrackingType . APP_EMBED ) ;
let obj = importDefault ( items [ 6 ] ) ;
2026-07-20 16:05:17 +00:00
}
} ;
export const useShouldTrackOfficialMessageViews = function useShouldTrackOfficialMessageViews ( isMessagesReady ) {
let guild ;
let messages ;
( { guild , messages } = isMessagesReady ) ;
isMessagesReady = isMessagesReady . isMessagesReady ;
let id ;
2026-07-23 10:11:24 +00:00
let isGuildOfficialMessagesEnabled ;
2026-07-20 16:05:17 +00:00
if ( null != guild ) {
id = guild . id ;
}
let tmp2 = null ;
if ( null != id ) {
tmp2 = id ;
}
2026-07-23 10:11:24 +00:00
isGuildOfficialMessagesEnabled = messages ( isGuildOfficialMessagesEnabled [ 7 ] ) . useIsGuildOfficialMessagesEnabled ( tmp2 , "useShouldTrackOfficialMessageViews" ) ;
2026-07-20 16:05:17 +00:00
const items = [ isGuildOfficialMessagesEnabled , isMessagesReady , messages ] ;
return React . useMemo ( ( ) = > {
let someResult = isGuildOfficialMessagesEnabled ;
if ( isGuildOfficialMessagesEnabled ) {
someResult = isMessagesReady ;
}
if ( someResult ) {
2026-07-23 10:11:24 +00:00
someResult = messages . some ( ( hasFlag ) = > hasFlag . hasFlag ( outer2_9 . IS_GUILD_OFFICIAL ) ) ;
2026-07-20 16:05:17 +00:00
}
return someResult ;
} , items ) ;
} ;
export const handleOfficialMessageViewTracking = function handleOfficialMessageViewTracking ( arr , shouldTrackOfficialMessageViews , guildId , channel ) {
2026-07-23 10:11:24 +00:00
const _require = guildId ;
2026-07-20 16:05:17 +00:00
const importDefault = channel ;
if ( shouldTrackOfficialMessageViews ) {
if ( null != guildId ) {
const items = [ ] ;
const item = arr . forEach ( ( message ) = > {
message = message . message ;
2026-07-23 10:11:24 +00:00
let hasFlagResult = ! message . hasFlag ( outer1_9 . EPHEMERAL ) ;
2026-07-20 16:05:17 +00:00
if ( hasFlagResult ) {
2026-07-23 10:11:24 +00:00
hasFlagResult = message . hasFlag ( outer1_9 . IS_GUILD_OFFICIAL ) ;
2026-07-20 16:05:17 +00:00
}
if ( hasFlagResult ) {
2026-07-23 10:11:24 +00:00
const obj = { type : guildId ( items [ 6 ] ) . MessageViewTrackingType . OFFICIAL_MESSAGE , messageId : message.id , channelId : id.id , guildId } ;
2026-07-20 16:05:17 +00:00
items . push ( obj ) ;
}
} ) ;
2026-07-23 10:11:24 +00:00
const result = importDefault ( items [ 6 ] ) . handleMessageListVisibilityChange ( items , _require ( items [ 6 ] ) . MessageViewTrackingType . OFFICIAL_MESSAGE ) ;
let obj = importDefault ( items [ 6 ] ) ;
2026-07-20 16:05:17 +00:00
}
}
} ;
export const useShouldTrackVoiceInviteEmbedViews = function useShouldTrackVoiceInviteEmbedViews ( messages ) {
messages = messages . messages ;
const isMessagesReady = messages . isMessagesReady ;
const items = [ messages , isMessagesReady ] ;
return React . useMemo ( ( ) = > {
let someResult = isMessagesReady ;
if ( isMessagesReady ) {
someResult = messages . some ( ( codedLinks ) = > {
codedLinks = codedLinks . codedLinks ;
2026-07-23 10:11:24 +00:00
return codedLinks . some ( ( type ) = > type . type === messages ( outer3_2 [ 8 ] ) . CodedLinkType . INVITE ) ;
2026-07-20 16:05:17 +00:00
} ) ;
}
return someResult ;
} , items ) ;
} ;
export const handleVoiceInviteEmbedViewTracking = function handleVoiceInviteEmbedViewTracking ( arr , shouldTrackVoiceInviteEmbedViews , guildId , channel ) {
2026-07-23 10:11:24 +00:00
const _require = guildId ;
2026-07-20 16:05:17 +00:00
const importDefault = channel ;
if ( shouldTrackVoiceInviteEmbedViews ) {
const items = [ ] ;
const item = arr . forEach ( ( message ) = > {
let iter3 ;
message = message . message ;
2026-07-23 10:11:24 +00:00
if ( ! message . hasFlag ( outer1_9 . EPHEMERAL ) ) {
const tmp2 = outer1_12 ( message . codedLinks ) ;
2026-07-20 16:05:17 +00:00
const iter = tmp2 ( ) ;
let iter2 = iter ;
if ( ! iter . done ) {
do {
let value = iter2 . value ;
2026-07-23 10:11:24 +00:00
let tmp13 = guildId ;
let tmp14 = items ;
2026-07-20 16:05:17 +00:00
let tmp15 = tmp4 ;
let tmp16 = tmp5 ;
let tmp17 = tmp6 ;
let tmp18 = tmp7 ;
let tmp19 = tmp8 ;
let tmp20 = tmp9 ;
let tmp21 = tmp10 ;
let tmp22 = tmp11 ;
let tmp23 = tmp12 ;
2026-07-23 10:11:24 +00:00
if ( value . type === guildId ( items [ 8 ] ) . CodedLinkType . INVITE ) {
let tmp39 = outer1_4 ;
let invite = outer1_4 . getInvite ( value . code ) ;
2026-07-20 16:05:17 +00:00
tmp15 = tmp4 ;
tmp16 = tmp5 ;
tmp17 = tmp6 ;
tmp18 = tmp7 ;
tmp19 = tmp8 ;
tmp20 = tmp9 ;
tmp21 = tmp10 ;
tmp22 = tmp11 ;
tmp23 = tmp12 ;
let tmp41 = invite ;
if ( null != invite ) {
2026-07-23 10:11:24 +00:00
let tmp42 = outer1_14 ;
let tmp43 = outer1_14 ( invite ) ;
2026-07-20 16:05:17 +00:00
tmp15 = tmp4 ;
tmp16 = tmp5 ;
tmp17 = tmp6 ;
tmp18 = tmp7 ;
tmp19 = tmp8 ;
let tmp44 = invite ;
tmp21 = tmp10 ;
tmp22 = tmp11 ;
tmp23 = tmp12 ;
tmp20 = tmp43 ;
if ( null != tmp43 ) {
let channel = invite . channel ;
let id ;
if ( null != channel ) {
id = channel . id ;
}
let tmp25 = null ;
if ( null != id ) {
tmp25 = id ;
}
let guild = invite . guild ;
let id1 ;
if ( null != guild ) {
id1 = guild . id ;
}
let tmp27 = null ;
if ( null != id1 ) {
tmp27 = id1 ;
}
let someResult = null != tmp25 && null != tmp27 ;
if ( someResult ) {
2026-07-23 10:11:24 +00:00
let tmp29 = outer1_5 ;
let voiceStatesForChannelAlt = outer1_5 . getVoiceStatesForChannelAlt ( tmp25 , tmp27 ) ;
2026-07-20 16:05:17 +00:00
someResult = voiceStatesForChannelAlt . some ( ( voiceState ) = > voiceState . voiceState . selfStream ) ;
}
let obj = { } ;
2026-07-23 10:11:24 +00:00
let tmp31 = guildId ;
let tmp32 = items ;
let tmp30 = items ;
obj . type = guildId ( items [ 6 ] ) . MessageViewTrackingType . VOICE_INVITE_EMBED ;
2026-07-20 16:05:17 +00:00
obj . messageId = message . id ;
2026-07-23 10:11:24 +00:00
let tmp33 = id ;
obj . channelId = id . id ;
let tmp34 = guildId ;
obj . guildId = guildId ;
2026-07-20 16:05:17 +00:00
obj . inviteCode = value . code ;
obj . inviteGuildId = tmp27 ;
obj . inviteChannelId = tmp25 ;
2026-07-23 10:11:24 +00:00
let obj3 = guildId ( items [ 12 ] ) ;
2026-07-20 16:05:17 +00:00
let inviteInstanceId = obj3 . getInviteInstanceId ( value . code , message . id ) ;
let tmp36 = null ;
if ( null != inviteInstanceId ) {
tmp36 = inviteInstanceId ;
}
obj . inviteInstanceId = tmp36 ;
obj . treatmentRendered = tmp43 . treatmentRendered ;
obj . hasActiveStream = someResult ;
2026-07-23 10:11:24 +00:00
let arr = items . push ( obj ) ;
2026-07-20 16:05:17 +00:00
tmp15 = id ;
tmp16 = channel ;
tmp17 = id1 ;
tmp18 = guild ;
tmp19 = inviteInstanceId ;
let tmp38 = invite ;
tmp20 = tmp43 ;
tmp21 = tmp25 ;
tmp22 = tmp27 ;
tmp23 = someResult ;
}
}
}
iter3 = tmp2 ( ) ;
2026-07-23 10:11:24 +00:00
tmp4 = tmp15 ;
tmp5 = tmp16 ;
tmp6 = tmp17 ;
tmp7 = tmp18 ;
tmp8 = tmp19 ;
tmp9 = tmp20 ;
tmp10 = tmp21 ;
tmp11 = tmp22 ;
tmp12 = tmp23 ;
2026-07-20 16:05:17 +00:00
iter2 = iter3 ;
} while ( ! iter3 . done ) ;
}
}
} ) ;
2026-07-23 10:11:24 +00:00
const result = importDefault ( items [ 6 ] ) . handleMessageListVisibilityChange ( items , _require ( items [ 6 ] ) . MessageViewTrackingType . VOICE_INVITE_EMBED ) ;
let obj = importDefault ( items [ 6 ] ) ;
2026-07-20 16:05:17 +00:00
}
} ;