2026-07-27 11:26:19 +00:00
// Module ID: 11082
// Function ID: 86084
2026-07-20 16:05:17 +00:00
// Name: _createForOfIteratorHelperLoose
2026-07-27 11:26:19 +00:00
// Dependencies: [14, 11083, 4063, 9397, 477, 9396, 2]
2026-07-20 16:05:17 +00:00
// Exports: default
2026-07-27 11:26:19 +00:00
// Module 11082 (_createForOfIteratorHelperLoose)
2026-07-23 10:11:24 +00:00
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 ;
}
2026-07-23 10:11:24 +00:00
const result = require ( "GuildThemeSourcePreference" ) . fileFinishedImporting ( "modules/messages/native/hooks/useRowManager.tsx" ) ;
2026-07-20 16:05:17 +00:00
export default function useRowManager ( arg0 ) {
2026-07-23 10:11:24 +00:00
let _arrayLikeToArray ;
let _createForOfIteratorHelperLoose ;
let closure_10 ;
let closure_11 ;
let closure_12 ;
let closure_13 ;
let closure_14 ;
let closure_15 ;
let closure_16 ;
let closure_17 ;
let closure_18 ;
let closure_19 ;
let closure_20 ;
let closure_21 ;
let closure_22 ;
let closure_23 ;
let closure_24 ;
let closure_25 ;
let closure_26 ;
let closure_27 ;
let closure_28 ;
let closure_29 ;
let closure_30 ;
let closure_31 ;
let closure_32 ;
let closure_33 ;
let closure_34 ;
let closure_35 ;
let closure_36 ;
let closure_37 ;
let closure_38 ;
let closure_39 ;
let closure_40 ;
let closure_5 ;
let closure_6 ;
let closure_7 ;
let closure_8 ;
let closure_9 ;
let dependencyMap ;
let importDefault ;
let require ;
( { chatManager : require , rowGenerator : importDefault , animatingStickerMessageIdRef : dependencyMap , canAddNewReactions : _createForOfIteratorHelperLoose , channel : _arrayLikeToArray , messages : closure_5 , isMessagesReady : closure_6 , uploads : closure_7 , roleStyle : closure_8 , oldestUnreadMessageId : closure_9 , replyingMessageId : closure_10 , inlineAttachmentMedia : closure_11 , inlineEmbedMedia : closure_12 , renderEmbeds : closure_13 , renderReactions : closure_14 , animateEmoji : closure_15 , gifAutoPlay : closure_16 , timestampHourCycle : closure_17 , currentUserId : closure_18 , renderCommunicationDisabled : closure_19 , selectedSummary : closure_20 , enableSwipeActions : closure_21 , isResourceChannel : closure_22 , shouldObscureSpoiler : closure_23 , shouldDisableInteractiveComponents : closure_24 , unloadableContentEntryMessageIds : closure_25 , containerWidth : closure_26 , chatRef : closure_27 , loadedRef : closure_28 , animatedRef : closure_29 , hasMoreMessagesAfterForLastUpdateRef : closure_30 , updateNativeRows : closure_31 , isLoadingAtTop : closure_32 , channelLatestMessageLoadingStatsManager : closure_33 , channelId : closure_34 , isMessagesCached : closure_35 , chatUpdatesQueue : closure_36 , shouldJumpToOriginalPost : closure_37 , findMessageIndex : closure_38 , scrollToTopMessage : closure_39 , useReducedMotion : closure_40 } = arg0 ) ;
2026-07-20 16:05:17 +00:00
function createRows ( arg0 ) {
2026-07-23 10:11:24 +00:00
let closure_0 ;
let closure_1 ;
let closure_2 ;
2026-07-20 16:05:17 +00:00
( { forceRender : closure_0 , updateMessageIds : closure_1 , ignoreEmbedDescriptionCache : closure_2 } = arg0 ) ;
let measureResult = null ;
if ( null != closure_4 ) {
measureResult = null ;
if ( null != closure_5 ) {
measureResult = null ;
if ( closure_6 ) {
2026-07-23 10:11:24 +00:00
const firstRowGenerator = outer1_1 ( outer1_2 [ 0 ] ) . firstRowGenerator ;
2026-07-20 16:05:17 +00:00
measureResult = firstRowGenerator . measure ( ( ) = > {
let done ;
2026-07-23 10:11:24 +00:00
outer1_0 . setup ( outer1_5 ) ;
let obj = { inlineAttachmentMedia : outer1_11 , inlineEmbedMedia : outer1_12 , renderEmbeds : outer1_13 , renderReactions : outer1_14 , animateEmoji : outer1_15 , animatingStickerMessageId : outer1_2.current , constrainedWidth : outer1_26 , gifAutoPlay : outer1_16 , timestampHourCycle : outer1_17 , renderCommunicationDisabled : outer1_19 , ignoreEmbedDescriptionCache : closure_2 , enableSwipeActions : outer1_21 , shouldObscureSpoiler : outer1_23 , shouldDisableInteractiveComponents : outer1_24 } ;
outer1_1 . setOptions ( obj ) ;
obj = { channel : outer1_4 , messages : outer1_5 , uploads : outer1_7 , oldestUnreadMessageId : outer1_9 , replyingMessageId : outer1_10 , currentUserId : outer1_18 , canAddNewReactions : outer1_3 ( ) , selectedSummary : outer1_20 , chatManager : outer1_0 , roleStyle : outer1_8 , forceRender : closure_0 , updateMessageIds : closure_1 , isResourceChannel : outer1_22 , unloadableContentEntryMessageIds : outer1_25 } ;
const tmp4 = outer2_3 ( outer2_1 ( outer2_2 [ 1 ] ) ( obj ) ) ;
2026-07-20 16:05:17 +00:00
let iter = tmp4 ( ) ;
if ( ! iter . done ) {
do {
2026-07-23 10:11:24 +00:00
let tmp5 = outer1_1 ;
let tmp6 = outer1_0 ;
let row = outer1_0 . createRow ( outer1_1 . generate ( iter . value ) ) ;
2026-07-20 16:05:17 +00:00
let iter2 = tmp4 ( ) ;
iter = iter2 ;
done = iter2 . done ;
} while ( ! done ) ;
}
2026-07-23 10:11:24 +00:00
return outer1_0 . createChangeset ( ) ;
2026-07-20 16:05:17 +00:00
} ) ;
}
}
}
return measureResult ;
}
function maybeRescrollToMessageId ( arg0 ) {
let flag = arg1 ;
let INSTANT = arg2 ;
let flag2 = arg3 ;
2026-07-23 10:11:24 +00:00
let closure_0 = arg0 ;
2026-07-20 16:05:17 +00:00
if ( arg1 === undefined ) {
flag = false ;
}
if ( INSTANT === undefined ) {
2026-07-23 10:11:24 +00:00
INSTANT = outer1_0 ( outer1_2 [ 2 ] ) . JumpType . INSTANT ;
2026-07-20 16:05:17 +00:00
}
if ( flag2 === undefined ) {
flag2 = false ;
}
if ( null != arg0 ) {
const _setTimeout = setTimeout ;
const timerId = setTimeout ( ( ) = > {
2026-07-23 10:11:24 +00:00
const tmp = outer1_38 ( closure_0 ) ;
2026-07-20 16:05:17 +00:00
if ( null != tmp ) {
2026-07-23 10:11:24 +00:00
if ( null != outer1_27 . current ) {
2026-07-20 16:05:17 +00:00
let flag2 = false ;
if ( flag ) {
2026-07-23 10:11:24 +00:00
let obj = { scrollToMessageId : closure_0 , jumpTargetId : closure_0 , jumpType : INSTANT , focusTargetId : closure_0 , overrideScrollJumpType : outer2_0 ( outer2_2 [ 2 ] ) . JumpType . INSTANT , isRescrolling : true , hasJumpedToOriginalPost : flag2 } ;
outer1_44 ( obj ) ;
2026-07-20 16:05:17 +00:00
flag2 = true ;
}
if ( ! flag2 ) {
2026-07-23 10:11:24 +00:00
obj = { animated : INSTANT === outer2_0 ( outer2_2 [ 2 ] ) . JumpType . ANIMATED } ;
outer2_1 ( outer2_2 [ 3 ] ) . scrollTo ( outer1_27 . current , tmp , obj ) ;
const obj2 = outer2_1 ( outer2_2 [ 3 ] ) ;
2026-07-20 16:05:17 +00:00
}
}
}
} , 50 ) ;
}
}
function scrollToMessageId ( scrollToMessageId ) {
scrollToMessageId = scrollToMessageId . scrollToMessageId ;
let jumpTargetId = scrollToMessageId . jumpTargetId ;
if ( jumpTargetId === undefined ) {
jumpTargetId = null ;
}
let ANIMATED = scrollToMessageId . jumpType ;
if ( ANIMATED === undefined ) {
2026-07-23 10:11:24 +00:00
ANIMATED = outer1_0 ( outer1_2 [ 2 ] ) . JumpType . ANIMATED ;
2026-07-20 16:05:17 +00:00
}
let TOP = scrollToMessageId . scrollPosition ;
if ( TOP === undefined ) {
2026-07-23 10:11:24 +00:00
TOP = outer1_0 ( outer1_2 [ 3 ] ) . ChatScrollPosition . TOP ;
2026-07-20 16:05:17 +00:00
}
let flag = scrollToMessageId . minimizeScrolling ;
if ( flag === undefined ) {
flag = false ;
}
let flag2 = scrollToMessageId . isRescrolling ;
if ( flag2 === undefined ) {
flag2 = false ;
}
let flag3 = scrollToMessageId . hasJumpedToOriginalPost ;
if ( flag3 === undefined ) {
flag3 = false ;
}
2026-07-23 10:11:24 +00:00
let c2 ;
let c3 ;
2026-07-20 16:05:17 +00:00
let tmp6 = closure_40 ;
if ( ! closure_40 ) {
2026-07-23 10:11:24 +00:00
tmp6 = ANIMATED === outer1_0 ( outer1_2 [ 2 ] ) . JumpType . INSTANT ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
c2 = tmp9 ;
let obj = outer1_0 ( outer1_2 [ 4 ] ) ;
2026-07-20 16:05:17 +00:00
if ( obj . isIOS ( ) ) {
if ( ! flag2 ) {
2026-07-23 10:11:24 +00:00
const JumpType = outer1_0 ( outer1_2 [ 2 ] ) . JumpType ;
2026-07-20 16:05:17 +00:00
const tmp13 = tmp9 ? JumpType.ANIMATED : JumpType.INSTANT ;
maybeRescrollToMessageId ( scrollToMessageId , true , tmp13 , flag3 ) ;
const tmp10 = maybeRescrollToMessageId ;
}
}
2026-07-23 10:11:24 +00:00
const tmp18 = callback4 ( scrollToMessageId ) ;
c3 = tmp18 ;
2026-07-20 16:05:17 +00:00
if ( null != tmp18 ) {
if ( flag ) {
const _setTimeout = setTimeout ;
const timerId = setTimeout ( ( ) = > {
2026-07-23 10:11:24 +00:00
let obj = outer2_1 ( outer2_2 [ 3 ] ) ;
obj = { animated : c2 , highlight : jumpTargetId === scrollToMessageId } ;
obj . scrollIntoView ( outer1_27 . current , c3 , obj ) ;
2026-07-20 16:05:17 +00:00
} , 5 ) ;
} else {
obj = { animated : tmp9 , highlight : jumpTargetId === scrollToMessageId , position : TOP } ;
2026-07-23 10:11:24 +00:00
outer1_1 ( outer1_2 [ 3 ] ) . scrollTo ( closure_27 . current , tmp18 , obj ) ;
const obj2 = outer1_1 ( outer1_2 [ 3 ] ) ;
2026-07-20 16:05:17 +00:00
}
}
}
function updateRows() {
let forceReload ;
let isAnimated ;
let overrideScrollJumpType ;
let updateMessageIds ;
let obj = arg0 ;
if ( arg0 === undefined ) {
obj = { } ;
}
let flag = obj . forceRender ;
if ( flag === undefined ) {
flag = false ;
}
( { updateMessageIds , forceReload } = obj ) ;
if ( updateMessageIds === undefined ) {
const _Set = Set ;
updateMessageIds = new Set ( ) ;
}
let scrollToMessageId = obj . scrollToMessageId ;
if ( scrollToMessageId === undefined ) {
scrollToMessageId = null ;
}
let jumpTargetId = obj . jumpTargetId ;
if ( jumpTargetId === undefined ) {
jumpTargetId = null ;
}
let ANIMATED = obj . jumpType ;
if ( ANIMATED === undefined ) {
2026-07-23 10:11:24 +00:00
ANIMATED = outer1_0 ( outer1_2 [ 2 ] ) . JumpType . ANIMATED ;
2026-07-20 16:05:17 +00:00
}
let focusTargetId = obj . focusTargetId ;
if ( focusTargetId === undefined ) {
focusTargetId = null ;
}
let flag2 = obj . ignoreEmbedDescriptionCache ;
if ( flag2 === undefined ) {
flag2 = false ;
}
let flag3 = obj . messagesNewlyLoaded ;
if ( flag3 === undefined ) {
flag3 = false ;
}
let flag4 = obj . shouldInitialScroll ;
if ( flag4 === undefined ) {
flag4 = false ;
}
let flag5 = obj . minimizeScrolling ;
if ( flag5 === undefined ) {
flag5 = false ;
}
let flag6 = obj . isRescrolling ;
if ( flag6 === undefined ) {
flag6 = false ;
}
( { overrideScrollJumpType , isAnimated } = obj ) ;
if ( isAnimated === undefined ) {
isAnimated = true ;
}
let flag7 = obj . hasJumpedToOriginalPost ;
if ( flag7 === undefined ) {
flag7 = false ;
}
if ( null != closure_27 . current ) {
obj = { forceRender : flag , updateMessageIds , ignoreEmbedDescriptionCache : flag2 } ;
const arr = createRows ( obj ) ;
const current2 = closure_28 . current ;
if ( null != startId ) {
if ( startId . startId === scrollToMessageId ) {
2026-07-23 10:11:24 +00:00
const MIDDLE = outer1_0 ( outer1_2 [ 3 ] ) . ChatScrollPosition . MIDDLE ;
2026-07-20 16:05:17 +00:00
}
}
if ( null != arr ) {
if ( arr . length > 0 ) {
obj = { rows : previousRows.getPreviousRows ( ) , scrollToMessageId , jumpTargetId } ;
if ( null == overrideScrollJumpType ) {
overrideScrollJumpType = closure_5 . jumpType ;
}
obj . jumpType = overrideScrollJumpType ;
obj . shouldInitialScroll = ! closure_28 . current || flag4 ;
obj . animated = ref . current ;
obj . scrollPosition = MIDDLE ;
obj . focusTargetId = focusTargetId ;
closure_28 . current = true ;
let obj1 = { rows : arr , hasMoreMessagesAfter : closure_5.hasMoreAfter } ;
2026-07-23 10:11:24 +00:00
const tmp26 = outer1_1 ( outer1_2 [ 5 ] ) ;
obj1 . isLoadingAtTop = callback2 ( arr , ref2 . current ) ;
obj1 . scrollData = outer1_1 ( outer1_2 [ 5 ] ) ( obj ) ;
2026-07-20 16:05:17 +00:00
obj1 . HACK_iOSForceAnimations = flag3 ;
obj1 . forceReload = forceReload ;
obj1 . isAnimated = isAnimated ;
2026-07-23 10:11:24 +00:00
callback ( obj1 ) ;
2026-07-20 16:05:17 +00:00
if ( ! current2 ) {
const obj2 = { channelId : closure_34 , areMessagesCached : closure_35 } ;
closure_33 . finish ( obj2 ) ;
}
2026-07-23 10:11:24 +00:00
const tmp26Result = outer1_1 ( outer1_2 [ 5 ] ) ( obj ) ;
2026-07-20 16:05:17 +00:00
}
let current = closure_28 . current ;
if ( current ) {
current = closure_28 . current !== current2 ;
}
if ( current ) {
current = closure_22 ;
}
if ( current ) {
const _setTimeout = setTimeout ;
2026-07-23 10:11:24 +00:00
const timerId = setTimeout ( ( ) = > outer1_39 ( ) , 100 ) ;
2026-07-20 16:05:17 +00:00
}
}
if ( closure_28 . current ) {
if ( closure_36 . hasUpdates ( ) ) {
closure_36 . tryFlush ( ) ;
}
}
if ( ! closure_28 . current ) {
if ( null != arr ) {
if ( 0 === arr . length ) {
2026-07-23 10:11:24 +00:00
obj1 = outer1_1 ( outer1_2 [ 3 ] ) ;
2026-07-20 16:05:17 +00:00
obj1 . fadeIn ( closure_27 . current ) ;
}
}
}
if ( null != scrollToMessageId ) {
2026-07-23 10:11:24 +00:00
if ( ! callback3 ( flag7 ) ) {
2026-07-20 16:05:17 +00:00
const obj3 = { scrollToMessageId , jumpTargetId , jumpType : ANIMATED , scrollPosition : MIDDLE , minimizeScrolling : flag5 , isRescrolling : flag6 , hasJumpedToOriginalPost : flag7 } ;
scrollToMessageId ( obj3 ) ;
}
}
if ( null != focusTargetId ) {
2026-07-23 10:11:24 +00:00
const tmp50 = callback4 ( focusTargetId ) ;
2026-07-20 16:05:17 +00:00
if ( null != tmp50 ) {
2026-07-23 10:11:24 +00:00
outer1_1 ( outer1_2 [ 3 ] ) . focus ( closure_27 . current , tmp50 ) ;
const obj8 = outer1_1 ( outer1_2 [ 3 ] ) ;
2026-07-20 16:05:17 +00:00
}
}
}
}
return { createRows , updateRows , scrollToMessageId , maybeRescrollToMessageId } ;
} ;