285 lines
11 KiB
TypeScript
285 lines
11 KiB
TypeScript
// Metro module 11145 (f11146).
|
|
import PushFeedbackStore from "../../push_feedback/PushFeedbackStore";
|
|
import EditMessageStore from "../../../stores/EditMessageStore";
|
|
import UploadStore from "../../../stores/UploadStore";
|
|
import { Changeset, LoadingType, RowType, SeparatorType } from "./renderer/RowGeneratorConstants";
|
|
import { MessageFlags } from "../../../Constants";
|
|
import SnowflakeUtils from "../../../utils/SnowflakeUtils";
|
|
import isNewMessageGroup from "../isNewMessageGroup";
|
|
import { tryCreateInjectedMessage } from "../tryInjectMessage";
|
|
import { intl, t } from "../../../intl/index.native";
|
|
import { isSameDay, dateFormat } from "../../../utils/DateUtils";
|
|
import { canReplyToMessage } from "../../replies/canReplyToMessage";
|
|
import canEditMessage from "../canEditMessage";
|
|
import { isNonModInLockedThread } from "../../threads/ThreadHooks";
|
|
export default function createChannelStream({ channel, messages, uploads, oldestUnreadMessageId, replyingMessageId, currentUserId, canAddNewReactions, selectedSummary, chatManager, roleStyle, forceRender, updateMessageIds, isResourceChannel, unloadableContentEntryMessageIds }) {
|
|
let c18560_13, c18560_14, c18560_16, insertMessage2, determineChangeType2;
|
|
c18560_16 = void 0;
|
|
const unreadFilter2 = function unreadFilter(a0) {
|
|
const isForumPost = channel.isForumPost();
|
|
const r2 = a0.id === oldestUnreadMessageId;
|
|
return isForumPost ? r2 ? a0.id !== SnowflakeUtils.castChannelIdAsMessageId(channel.id) : r2 : r2;
|
|
};
|
|
insertMessage2 = function insertMessage(a0) {
|
|
L11: {
|
|
const r5 = c18560_16[0];
|
|
if (r5 != null) {
|
|
const isForumPost = channel.isForumPost();
|
|
const r3 = a0.id === oldestUnreadMessageId;
|
|
if (!(isForumPost ? r3 ? a0.id !== SnowflakeUtils.castChannelIdAsMessageId(channel.id) : r3 : r3)) {
|
|
if (isNewMessageGroup(channel, r5[r5.length - 1], a0)) {
|
|
c18560_16.unshift([a0]);
|
|
break L11;
|
|
}
|
|
r5.unshift(a0);
|
|
} else {
|
|
c18560_16.unshift([a0]);
|
|
}
|
|
} else {
|
|
c18560_16.unshift([a0]);
|
|
}
|
|
}
|
|
};
|
|
determineChangeType2 = function determineChangeType(a0, r0 = false) {
|
|
return chatManager.determineChangeType({
|
|
message: a0,
|
|
updateMessageIds,
|
|
forceRender
|
|
}, r0);
|
|
};
|
|
const r39 = [];
|
|
c18560_13 = r39;
|
|
const r10 = {};
|
|
c18560_14 = r10;
|
|
for (const item of uploads.slice().reverse()) {
|
|
const messageForFile = UploadStore.getMessageForFile(item.id);
|
|
if (messageForFile?.nonce != null) {
|
|
r10[messageForFile.nonce] = item;
|
|
}
|
|
}
|
|
const r59 = [];
|
|
c18560_16 = r59;
|
|
messages.forEach((message) => {
|
|
const r14 = tryCreateInjectedMessage(message, channel);
|
|
if (r14 != null && r14.position === "before") {
|
|
insertMessage2(r14.message);
|
|
if (oldestUnreadMessageId === message.id) {
|
|
oldestUnreadMessageId = r14.message.id;
|
|
}
|
|
}
|
|
insertMessage2(message);
|
|
if (r14 != null && r14.position === "after") {
|
|
insertMessage2(r14.message);
|
|
}
|
|
});
|
|
r59.forEach((a0, index) => {
|
|
let r260, r296;
|
|
let c26953_0 = a0;
|
|
const message = a0[a0.length - 1];
|
|
let c26953_1 = message;
|
|
const r2 = c18560_16.length - 1;
|
|
if (index === 0 && messages.hasMoreAfter) {
|
|
c18560_13.push({
|
|
rowType: LoadingType.LOAD_AFTER,
|
|
changeType: forceRender ? Changeset.UPDATE : Changeset.NOOP,
|
|
roleStyle,
|
|
isLoading: messages.loadingMore,
|
|
text: intl.string(t.XBlaiC)
|
|
});
|
|
}
|
|
const r72 = index === r2;
|
|
let r74 = messages.hasMoreBefore && r72;
|
|
let r76 = unreadFilter2(message);
|
|
const r78 = r72 ? null : c18560_16[index + 1][0].timestamp;
|
|
const r90 = r72 ? channel.isDM() && !messages.hasMoreBefore && r72 || channel.isThread() && !channel.isForumPost() && !messages.hasMoreBefore && r72 ? true : false : isSameDay(message.timestamp, r78) ? channel.isDM() && !messages.hasMoreBefore && r72 || channel.isThread() && !channel.isForumPost() && !messages.hasMoreBefore && r72 ? true : false : true;
|
|
const processHiddenMessageRow = function processHiddenMessageRow(a0) {
|
|
for (const item of c26953_0) {
|
|
const message = item;
|
|
if (determineChangeType2(item) !== Changeset.NOOP && a0.changeType === Changeset.NOOP) {
|
|
a0.changeType = Changeset.UPDATE;
|
|
}
|
|
a0.content.unshift({
|
|
rowType: RowType.MESSAGE,
|
|
changeType: Changeset.NOOP,
|
|
roleStyle,
|
|
message,
|
|
isSystemDM: channel.isSystemDM() && message.isSystemDM(),
|
|
isFirst: message === c26953_1,
|
|
canAddNewReactions
|
|
});
|
|
}
|
|
a0.revealed = c26953_1.id === messages.revealedMessageId;
|
|
a0.context = c26953_1.id;
|
|
return a0;
|
|
};
|
|
const r106 = {
|
|
roleStyle,
|
|
message,
|
|
isFirst: true,
|
|
content: [],
|
|
text: "",
|
|
revealed: false
|
|
};
|
|
let r111 = c18560_13[c18560_13.length - 1];
|
|
if (message.hasFlag(MessageFlags.HIDDEN_SUSPENDED_USER)) {
|
|
if (!(r111 != null && r111.rowType === RowType.SUSPENDED_USER_GROUP)) {
|
|
const r336 = {
|
|
...r106,
|
|
rowType: RowType.SUSPENDED_USER_GROUP,
|
|
changeType: determineChangeType2(message),
|
|
canUncollapse: false
|
|
};
|
|
c18560_13.push(r336);
|
|
r111 = r336;
|
|
}
|
|
processHiddenMessageRow(r111);
|
|
r111.text = intl.formatToPlainString(t.rHRovo, {
|
|
count: r111.content.length
|
|
});
|
|
} else if (message.blocked) {
|
|
L88: {
|
|
if (r111 != null) {
|
|
const rowType2 = r111.rowType;
|
|
const BLOCKED_GROUP = RowType.BLOCKED_GROUP;
|
|
r296 = r111;
|
|
if (rowType2 === BLOCKED_GROUP) {
|
|
break L88;
|
|
}
|
|
}
|
|
let changeType3 = determineChangeType2(message);
|
|
if (changeType3 === Changeset.NOOP && chatManager.getBlocked(message)) {
|
|
changeType3 = Changeset.INSERT;
|
|
}
|
|
const r305 = {
|
|
...r106,
|
|
rowType: RowType.BLOCKED_GROUP,
|
|
changeType: changeType3
|
|
};
|
|
c18560_13.push(r305);
|
|
r296 = r305;
|
|
}
|
|
processHiddenMessageRow(r296);
|
|
r296.text = intl.formatToPlainString(t["+FcYM/"], {
|
|
count: r296.content.length
|
|
});
|
|
} else if (message.ignored) {
|
|
L80: {
|
|
if (r111 != null) {
|
|
const rowType = r111.rowType;
|
|
const IGNORED_GROUP = RowType.IGNORED_GROUP;
|
|
r260 = r111;
|
|
if (rowType === IGNORED_GROUP) {
|
|
break L80;
|
|
}
|
|
}
|
|
let changeType2 = determineChangeType2(message);
|
|
if (changeType2 === Changeset.NOOP && chatManager.getIgnored(message)) {
|
|
changeType2 = Changeset.INSERT;
|
|
}
|
|
const r269 = {
|
|
...r106,
|
|
rowType: RowType.IGNORED_GROUP,
|
|
changeType: changeType2
|
|
};
|
|
c18560_13.push(r269);
|
|
r260 = r269;
|
|
}
|
|
processHiddenMessageRow(r260);
|
|
r260.text = intl.formatToPlainString(t["VFWjc+"], {
|
|
count: r260.content.length
|
|
});
|
|
} else {
|
|
for (const item of a0) {
|
|
const message2 = item;
|
|
const r125 = item !== message;
|
|
const isEditing = EditMessageStore.isEditing(channel.id, item.id) || replyingMessageId === message2.id;
|
|
const pushFeedback = PushFeedbackStore.getPushFeedback(message2.channel_id, message2.id);
|
|
const canReplyToMessage2 = canReplyToMessage(channel, message2);
|
|
const r159 = canEditMessage(message2, currentUserId) && !isNonModInLockedThread(channel);
|
|
const changeType = c18560_14.hasOwnProperty(message2.id) ? chatManager.determineChangeTypeForUploadProgress(c18560_14[message2.id]) : determineChangeType2(message2, true);
|
|
if (selectedSummary != null && selectedSummary.endId === message2.id && selectedSummary.count > 1) {
|
|
c18560_13.push({
|
|
rowType: SeparatorType.SUMMARY,
|
|
changeType: determineChangeType2(message2),
|
|
roleStyle,
|
|
summary: selectedSummary,
|
|
isBeforeContent: false
|
|
});
|
|
}
|
|
const isSystemDM = channel.isSystemDM() && message2.isSystemDM();
|
|
c18560_13.push({
|
|
roleStyle,
|
|
message: message2,
|
|
isSystemDM,
|
|
isFirst: message2 === message,
|
|
isEditing,
|
|
separatorBefore: (r125 ? !r125 : !isResourceChannel) && (r90 || r76 || r74),
|
|
canAddNewReactions,
|
|
alwaysShowAddReaction: channel.isForumPost() && message2.id === SnowflakeUtils.castChannelIdAsMessageId(channel.id),
|
|
renderContentOnly: isResourceChannel,
|
|
pushFeedbackType: pushFeedback?.pushType,
|
|
canReply: isResourceChannel ? !isResourceChannel : canReplyToMessage2,
|
|
canEdit: isResourceChannel ? !isResourceChannel : r159,
|
|
rowType: RowType.MESSAGE,
|
|
changeType,
|
|
showContentInventoryEntryFallbackEmbed: unloadableContentEntryMessageIds == null ? void 0 : unloadableContentEntryMessageIds.has(message2.id)
|
|
});
|
|
if (selectedSummary != null && selectedSummary.startId === message2.id && selectedSummary.count > 1) {
|
|
c18560_13.push({
|
|
rowType: SeparatorType.SUMMARY,
|
|
changeType: determineChangeType2(message2),
|
|
roleStyle,
|
|
summary: selectedSummary,
|
|
isBeforeContent: true
|
|
});
|
|
}
|
|
}
|
|
}
|
|
if (r90 && !isResourceChannel) {
|
|
let changeType4 = determineChangeType2(message);
|
|
if (changeType4 === Changeset.UPDATE) {
|
|
changeType4 = Changeset.NOOP;
|
|
}
|
|
c18560_13.push({
|
|
rowType: SeparatorType.DAY,
|
|
changeType: changeType4,
|
|
roleStyle,
|
|
text: dateFormat(message.timestamp, "LL")
|
|
});
|
|
}
|
|
if (r76) {
|
|
r76 = !isResourceChannel;
|
|
}
|
|
if (r76) {
|
|
c18560_13.push({
|
|
rowType: SeparatorType.UNREAD,
|
|
changeType: determineChangeType2(message),
|
|
roleStyle,
|
|
text: intl.string(t.q7hm3m).toUpperCase()
|
|
});
|
|
}
|
|
if (r74) {
|
|
r74 = !isResourceChannel;
|
|
}
|
|
if (r74) {
|
|
c18560_13.push({
|
|
rowType: LoadingType.LOAD_BEFORE,
|
|
changeType: forceRender ? Changeset.UPDATE : Changeset.NOOP,
|
|
roleStyle,
|
|
isLoading: messages.loadingMore,
|
|
text: intl.string(t.XBlaiC)
|
|
});
|
|
}
|
|
});
|
|
if (r59.length === 0 && !messages.loadingMore && (messages.hasMoreAfter || messages.hasMoreBefore)) {
|
|
r39.push({
|
|
rowType: messages.hasMoreBefore ? LoadingType.LOAD_BEFORE : LoadingType.LOAD_AFTER,
|
|
changeType: forceRender ? Changeset.UPDATE : Changeset.NOOP,
|
|
roleStyle,
|
|
isLoading: messages.loadingMore,
|
|
text: intl.string(t.XBlaiC)
|
|
});
|
|
}
|
|
return r39;
|
|
};
|