decord/source/modules/messages/native/hooks/useRowManager.tsx

403 lines
14 KiB
TypeScript
Raw Normal View History

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 };
};