2026-07-21 06:55:02 +00:00
// Module ID: 11083
// Function ID: 86177
2026-07-20 16:05:17 +00:00
// Name: _createForOfIteratorHelperLoose
// Dependencies: []
// Exports: default
2026-07-21 06:55:02 +00:00
// Module 11083 (_createForOfIteratorHelperLoose)
2026-07-20 16:05:17 +00:00
function _createForOfIteratorHelperLoose ( @ @iterator ) {
let require = Symbol_iterator ;
@ @iterator = "undefined" !== typeof Symbol ;
if ( Symbol_iterator ) {
const _Symbol = Symbol ;
@ @iterator = Symbol_iterator [ Symbol . iterator ] ;
}
if ( ! Symbol_iterator ) {
@ @iterator = Symbol_iterator [ Symbol . iterator ] ;
}
if ( Symbol_iterator ) {
const iter = Symbol_iterator . call ( Symbol_iterator ) ;
const next = iter . next ;
return next . bind ( iter ) ;
} else {
const _Array = Array ;
let tmp = Symbol_iterator ;
if ( ! Array . isArray ( Symbol_iterator ) ) {
let tmp2 ;
if ( Symbol_iterator ) {
if ( "string" === typeof Symbol_iterator ) {
tmp2 = _arrayLikeToArray ( Symbol_iterator , undefined ) ;
} else {
const toString = { } . toString ;
const substr = toString . call ( Symbol_iterator ) . slice ( 8 , - 1 ) ;
let name = substr ;
if ( tmp3 ) {
name = Symbol_iterator . constructor . name ;
}
if ( "Map" !== name ) {
if ( "Set" !== name ) {
if ( "Arguments" === name ) {
let arr = _arrayLikeToArray ( Symbol_iterator , undefined ) ;
} else {
const obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/ ;
}
}
tmp2 = arr ;
}
const _Array2 = Array ;
arr = Array . from ( Symbol_iterator ) ;
const callResult = toString . call ( Symbol_iterator ) ;
const tmp3 = "Object" === substr && Symbol_iterator . constructor ;
}
}
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 ) {
require = tmp ;
}
let closure_1 = 0 ;
return ( ) = > {
if ( closure_1 >= tmp . length ) {
let obj = { done : true } ;
} else {
obj = { done : false } ;
closure_1 = tmp3 + 1 ;
obj . value = tmp [ + closure_1 ] ;
}
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 ;
}
const _module = require ( dependencyMap [ 6 ] ) ;
const result = _module . fileFinishedImporting ( "modules/messages/native/hooks/useRowManager.tsx" ) ;
export default function useRowManager ( arg0 ) {
( { chatManager : closure_0 , rowGenerator : closure_1 , animatingStickerMessageIdRef : closure_2 , canAddNewReactions : closure_3 , channel : closure_4 , 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 ) ;
function createRows ( arg0 ) {
( { 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 ) {
const firstRowGenerator = callback ( closure_2 [ 0 ] ) . firstRowGenerator ;
measureResult = firstRowGenerator . measure ( ( ) = > {
let done ;
closure_0 . setup ( closure_5 ) ;
let obj = { inlineAttachmentMedia : closure_11 , inlineEmbedMedia : closure_12 , renderEmbeds : closure_13 , renderReactions : closure_14 , animateEmoji : closure_15 , animatingStickerMessageId : ref.current , constrainedWidth : closure_26 , gifAutoPlay : closure_16 , timestampHourCycle : closure_17 , renderCommunicationDisabled : closure_19 , ignoreEmbedDescriptionCache : ref , enableSwipeActions : closure_21 , shouldObscureSpoiler : closure_23 , shouldDisableInteractiveComponents : closure_24 } ;
options . setOptions ( obj ) ;
obj = { channel : closure_4 , messages : closure_5 , uploads : closure_7 , oldestUnreadMessageId : closure_9 , replyingMessageId : closure_10 , currentUserId : closure_18 , canAddNewReactions : callback ( ) , selectedSummary : closure_20 , chatManager : closure_0 , roleStyle : closure_8 , forceRender : closure_0 , updateMessageIds : options , isResourceChannel : closure_22 , unloadableContentEntryMessageIds : closure_25 } ;
const tmp4 = callback ( options ( ref [ 1 ] ) ( obj ) ) ;
let iter = tmp4 ( ) ;
if ( ! iter . done ) {
do {
let tmp5 = closure_1 ;
let tmp6 = closure_0 ;
let row = closure_0 . createRow ( closure_1 . generate ( iter . value ) ) ;
let iter2 = tmp4 ( ) ;
iter = iter2 ;
done = iter2 . done ;
} while ( ! done ) ;
}
return closure_0 . createChangeset ( ) ;
} ) ;
}
}
}
return measureResult ;
}
function maybeRescrollToMessageId ( arg0 ) {
let flag = arg1 ;
let INSTANT = arg2 ;
let flag2 = arg3 ;
if ( arg1 === undefined ) {
flag = false ;
}
if ( INSTANT === undefined ) {
INSTANT = arg0 ( INSTANT [ 2 ] ) . JumpType . INSTANT ;
}
if ( flag2 === undefined ) {
flag2 = false ;
}
if ( null != arg0 ) {
const _setTimeout = setTimeout ;
const timerId = setTimeout ( ( ) = > {
const tmp = callback ( arg0 ) ;
if ( null != tmp ) {
if ( null != ref . current ) {
let flag2 = false ;
if ( flag ) {
let obj = { scrollToMessageId : arg0 , jumpTargetId : arg0 , jumpType : INSTANT , focusTargetId : arg0 , overrideScrollJumpType : arg0 ( INSTANT [ 2 ] ) . JumpType . INSTANT , isRescrolling : true , hasJumpedToOriginalPost : flag2 } ;
callback2 ( obj ) ;
flag2 = true ;
}
if ( ! flag2 ) {
obj = { animated : INSTANT === arg0 ( INSTANT [ 2 ] ) . JumpType . ANIMATED } ;
flag ( INSTANT [ 3 ] ) . scrollTo ( ref . current , tmp , obj ) ;
const obj2 = flag ( INSTANT [ 3 ] ) ;
}
}
}
} , 50 ) ;
}
}
function scrollToMessageId ( scrollToMessageId ) {
scrollToMessageId = scrollToMessageId . scrollToMessageId ;
let jumpTargetId = scrollToMessageId . jumpTargetId ;
if ( jumpTargetId === undefined ) {
jumpTargetId = null ;
}
let ANIMATED = scrollToMessageId . jumpType ;
if ( ANIMATED === undefined ) {
ANIMATED = scrollToMessageId ( tmp9 [ 2 ] ) . JumpType . ANIMATED ;
}
let TOP = scrollToMessageId . scrollPosition ;
if ( TOP === undefined ) {
TOP = scrollToMessageId ( tmp9 [ 3 ] ) . ChatScrollPosition . TOP ;
}
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 ;
}
let tmp9 ;
let tmp18 ;
let tmp6 = closure_40 ;
if ( ! closure_40 ) {
tmp6 = ANIMATED === scrollToMessageId ( tmp9 [ 2 ] ) . JumpType . INSTANT ;
}
tmp9 = ! tmp6 ;
let obj = scrollToMessageId ( tmp9 [ 4 ] ) ;
if ( obj . isIOS ( ) ) {
if ( ! flag2 ) {
const JumpType = scrollToMessageId ( tmp9 [ 2 ] ) . JumpType ;
const tmp13 = tmp9 ? JumpType.ANIMATED : JumpType.INSTANT ;
maybeRescrollToMessageId ( scrollToMessageId , true , tmp13 , flag3 ) ;
const tmp10 = maybeRescrollToMessageId ;
}
}
tmp18 = callback5 ( scrollToMessageId ) ;
if ( null != tmp18 ) {
if ( flag ) {
const _setTimeout = setTimeout ;
const timerId = setTimeout ( ( ) = > {
let obj = jumpTargetId ( tmp9 [ 3 ] ) ;
obj = { animated : tmp9 , highlight : jumpTargetId === scrollToMessageId } ;
obj . scrollIntoView ( ref . current , tmp18 , obj ) ;
} , 5 ) ;
} else {
obj = { animated : tmp9 , highlight : jumpTargetId === scrollToMessageId , position : TOP } ;
jumpTargetId ( tmp9 [ 3 ] ) . scrollTo ( closure_27 . current , tmp18 , obj ) ;
const obj2 = jumpTargetId ( tmp9 [ 3 ] ) ;
}
}
}
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 ) {
ANIMATED = previousRows ( closure_2 [ 2 ] ) . JumpType . ANIMATED ;
}
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 ) {
const MIDDLE = previousRows ( closure_2 [ 3 ] ) . ChatScrollPosition . MIDDLE ;
}
}
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 } ;
const tmp26 = callback ( closure_2 [ 5 ] ) ;
obj1 . isLoadingAtTop = callback3 ( arr , ref2 . current ) ;
obj1 . scrollData = callback ( closure_2 [ 5 ] ) ( obj ) ;
obj1 . HACK_iOSForceAnimations = flag3 ;
obj1 . forceReload = forceReload ;
obj1 . isAnimated = isAnimated ;
callback2 ( obj1 ) ;
if ( ! current2 ) {
const obj2 = { channelId : closure_34 , areMessagesCached : closure_35 } ;
closure_33 . finish ( obj2 ) ;
}
const tmp26Result = callback ( closure_2 [ 5 ] ) ( obj ) ;
}
let current = closure_28 . current ;
if ( current ) {
current = closure_28 . current !== current2 ;
}
if ( current ) {
current = closure_22 ;
}
if ( current ) {
const _setTimeout = setTimeout ;
const timerId = setTimeout ( ( ) = > callback ( ) , 100 ) ;
}
}
if ( closure_28 . current ) {
if ( closure_36 . hasUpdates ( ) ) {
closure_36 . tryFlush ( ) ;
}
}
if ( ! closure_28 . current ) {
if ( null != arr ) {
if ( 0 === arr . length ) {
obj1 = callback ( closure_2 [ 3 ] ) ;
obj1 . fadeIn ( closure_27 . current ) ;
}
}
}
if ( null != scrollToMessageId ) {
if ( ! callback4 ( flag7 ) ) {
const obj3 = { scrollToMessageId , jumpTargetId , jumpType : ANIMATED , scrollPosition : MIDDLE , minimizeScrolling : flag5 , isRescrolling : flag6 , hasJumpedToOriginalPost : flag7 } ;
scrollToMessageId ( obj3 ) ;
}
}
if ( null != focusTargetId ) {
const tmp50 = callback5 ( focusTargetId ) ;
if ( null != tmp50 ) {
callback ( closure_2 [ 3 ] ) . focus ( closure_27 . current , tmp50 ) ;
const obj8 = callback ( closure_2 [ 3 ] ) ;
}
}
}
}
return { createRows , updateRows , scrollToMessageId , maybeRescrollToMessageId } ;
} ;