288 lines
8.9 KiB
TypeScript
288 lines
8.9 KiB
TypeScript
// Metro module 9307 (f9308).
|
|
import { Changeset, RowType } from "./RowGeneratorConstants";
|
|
import getEmbeddedActivityKey from "../getEmbeddedActivityKey";
|
|
import isUndefinedOrNull from "../../../../_bundle/isUndefinedOrNull";
|
|
const r17 = {
|
|
determineChangeType: () => Changeset.NOOP,
|
|
determineChangeTypeForUploadProgress: () => Changeset.NOOP,
|
|
determineChangeTypeForEmbeddedActivity: () => Changeset.NOOP,
|
|
getBlocked: () => false,
|
|
getIgnored: () => false
|
|
};
|
|
class ChatManager {
|
|
_messages = null;
|
|
_rows = [];
|
|
messages = null;
|
|
rows = [];
|
|
rowIndex = 0;
|
|
maybeRemove = false;
|
|
uploadProgressIds = {};
|
|
embeddedActivities = {};
|
|
getPreviousMessages() {
|
|
return this._messages;
|
|
}
|
|
getPreviousRows() {
|
|
return this._rows;
|
|
}
|
|
getBlocked(a0) {
|
|
if (this._messages != null && !Array.isArray(this._messages)) {
|
|
const r13 = this._messages._map[a0.id];
|
|
return r13 != null && !(r13.blocked || !a0.blocked);
|
|
}
|
|
return false;
|
|
}
|
|
getIgnored(a0) {
|
|
if (this._messages != null && !Array.isArray(this._messages)) {
|
|
const r13 = this._messages._map[a0.id];
|
|
return r13 != null && !(r13.ignored || !a0.ignored);
|
|
}
|
|
return false;
|
|
}
|
|
clear() {
|
|
this._messages = null;
|
|
this._rows = [];
|
|
this.embeddedActivities = {};
|
|
}
|
|
finishUpdate(a0, a1) {
|
|
this._messages = a0;
|
|
this._rows = a1;
|
|
}
|
|
getLastRow() {
|
|
return this.rows != null ? this.rows.length > 0 ? this.rows[this.rows.length - 1] : null : null;
|
|
}
|
|
setup(a0) {
|
|
this.messages = a0;
|
|
this.rows = [];
|
|
this.rowIndex = 0;
|
|
this.maybeRemove = this._messages?.length === this.messages.length;
|
|
}
|
|
determineChangeTypeForUploadProgress(a0) {
|
|
let r13, NOOP;
|
|
const r10 = this.uploadProgressIds[a0.id];
|
|
if (r10 != null) {
|
|
if (r10.items?.length === a0.items?.length && (r10.compressionProgress === a0.compressionProgress && (r10.progress === a0.progress && r10.currentSize === a0.currentSize))) {
|
|
NOOP = Changeset.NOOP;
|
|
} else {
|
|
this.uploadProgressIds[a0.id] = a0;
|
|
NOOP = Changeset.UPDATE;
|
|
}
|
|
r13 = NOOP;
|
|
} else {
|
|
this.uploadProgressIds[a0.id] = a0;
|
|
r13 = Changeset.INSERT;
|
|
}
|
|
return r13;
|
|
}
|
|
determineChangeTypeForEmbeddedActivity(a0) {
|
|
const embeddedActivityKey = getEmbeddedActivityKey(a0);
|
|
const r10 = this.embeddedActivities[embeddedActivityKey];
|
|
this.embeddedActivities[embeddedActivityKey] = a0;
|
|
return r10 != null ? Changeset.UPDATE : Changeset.INSERT;
|
|
}
|
|
determineChangeType(a0) {
|
|
let UPDATE;
|
|
const { message, updateMessageIds, forceRender } = a0;
|
|
let r6 = arguments[1];
|
|
if (r6 === void 0) {
|
|
r6 = false;
|
|
}
|
|
if (this._messages == null) {
|
|
return Changeset.NOOP;
|
|
}
|
|
if (Array.isArray(this._messages)) {
|
|
return Changeset.NOOP;
|
|
}
|
|
if (this._messages._map == null) {
|
|
return Changeset.NOOP;
|
|
}
|
|
L25: {
|
|
const r20 = this._messages._map[message.id];
|
|
let r21 = r20;
|
|
if (r20 == null) {
|
|
const nonce = message.nonce;
|
|
r21 = r20;
|
|
if (nonce != null) {
|
|
r21 = this._messages._map[message.nonce];
|
|
if (r21 != null) {
|
|
UPDATE = Changeset.UPDATE;
|
|
break L25;
|
|
}
|
|
}
|
|
}
|
|
L22: {
|
|
if (r21 != null) {
|
|
if (r6 && r21.blocked && !message.blocked) {
|
|
break L22;
|
|
}
|
|
if (!forceRender && !(updateMessageIds == null ? void 0 : updateMessageIds.has(message.id))) {
|
|
if (isUndefinedOrNull(r21, message)) {
|
|
UPDATE = Changeset.NOOP;
|
|
break L25;
|
|
}
|
|
UPDATE = Changeset.UPDATE;
|
|
break L25;
|
|
}
|
|
UPDATE = Changeset.UPDATE;
|
|
break L25;
|
|
}
|
|
}
|
|
UPDATE = Changeset.INSERT;
|
|
}
|
|
return UPDATE;
|
|
}
|
|
createRow(a0) {
|
|
if (a0.type === RowType.MESSAGE && a0.message == null) {
|
|
return void 0;
|
|
}
|
|
const index = +this.rowIndex;
|
|
this.rowIndex = index + 1;
|
|
a0.index = index;
|
|
this.rows.push(a0);
|
|
return a0;
|
|
}
|
|
createChangeset() {
|
|
let r2, r3, r17, r34, rows;
|
|
if (this._messages == null) {
|
|
rows = this.rows;
|
|
} else {
|
|
L49: {
|
|
r17 = [];
|
|
const r12 = 0 < this._rows.length;
|
|
let r6 = 0;
|
|
let r7 = 0;
|
|
let r8 = 0;
|
|
if (!r12) {
|
|
const r27 = 0 < this.rows.length;
|
|
r6 = 0;
|
|
r7 = 0;
|
|
r8 = 0;
|
|
if (!r27) {
|
|
break L49;
|
|
}
|
|
}
|
|
while (true) {
|
|
L47: {
|
|
const length = this.rows.length;
|
|
const r9 = r6;
|
|
const r5 = r7;
|
|
const r4 = r8;
|
|
if (r4 !== length) {
|
|
if (r9 !== this._rows.length) {
|
|
const r21 = this._rows[r9];
|
|
const r46 = this.rows[r4];
|
|
const changeType = r46.changeType;
|
|
if (Changeset.NOOP !== changeType && Changeset.UPDATE !== changeType) {
|
|
Changeset.INSERT;
|
|
r46.index = r4 + r5;
|
|
r17.push(r46);
|
|
r34 = r4 + 1;
|
|
r2 = r9;
|
|
r3 = r5;
|
|
break L47;
|
|
}
|
|
L39: {
|
|
if (r46.type === r21.type) {
|
|
if (r46.type === RowType.SEPARATOR && r46.id !== r21.id) {
|
|
break L39;
|
|
}
|
|
if (r46.type === RowType.LOADING && r46.id !== r21.id) {
|
|
break L39;
|
|
}
|
|
if (r46.type === RowType.MESSAGE && r46.message != null && r21.message != null && r46.message.id !== r21.message.id && r46.message.nonce !== r21.message.id) {
|
|
break L39;
|
|
}
|
|
L37: {
|
|
if (r46.changeType === Changeset.NOOP) {
|
|
L38: {
|
|
if (!(r46.type === RowType.SEPARATOR && r46.text !== r21.text) && !(r46.type === RowType.LOADING && r46.isLoading !== r21.isLoading)) {
|
|
if (!(r46.type !== RowType.BLOCKED_GROUP && r46.type !== RowType.IGNORED_GROUP)) {
|
|
if (r46.text !== r21.text) {
|
|
break L38;
|
|
}
|
|
if (r46.revealed !== r21.revealed) {
|
|
break L38;
|
|
}
|
|
}
|
|
if (!(r46.type === RowType.MESSAGE && (r46.separatorBefore !== r21.separatorBefore && !this.maybeRemove))) {
|
|
if (r46.message?.isFirst === r21.message?.isFirst) {
|
|
break L37;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
r46.changeType = Changeset.UPDATE;
|
|
r46.index = r4 + r5;
|
|
r17.push(r46);
|
|
r2 = r9 + 1;
|
|
r34 = r4 + 1;
|
|
r3 = r5;
|
|
break L47;
|
|
}
|
|
}
|
|
r46.index = r4 + r5;
|
|
r17.push(r46);
|
|
r2 = r9 + 1;
|
|
r34 = r4 + 1;
|
|
r3 = r5;
|
|
break L47;
|
|
}
|
|
}
|
|
const REMOVE = Changeset.REMOVE;
|
|
const index = r4 + r5;
|
|
r17.push({
|
|
changeType: REMOVE,
|
|
index
|
|
});
|
|
if (0 < index) {
|
|
const r121 = r17[index - 1];
|
|
if (!(r121.changeType !== Changeset.NOOP || r121.type !== RowType.MESSAGE || this.maybeRemove)) {
|
|
r121.changeType = Changeset.UPDATE;
|
|
}
|
|
}
|
|
r2 = r9 + 1;
|
|
r3 = r5 + 1;
|
|
r34 = r4;
|
|
} else {
|
|
const r38 = this.rows[r4];
|
|
r38.changeType = Changeset.INSERT;
|
|
r38.index = r4 + r5;
|
|
r17.push(r38);
|
|
r34 = r4 + 1;
|
|
r2 = r9;
|
|
r3 = r5;
|
|
}
|
|
} else {
|
|
r17.push({
|
|
changeType: Changeset.REMOVE,
|
|
index: r4 + r5
|
|
});
|
|
r3 = r5 + 1;
|
|
r2 = r9 + 1;
|
|
r34 = r4;
|
|
}
|
|
}
|
|
const length2 = this._rows.length;
|
|
r6 = r2;
|
|
r7 = r3;
|
|
r8 = r34;
|
|
if (!(r2 < length2)) {
|
|
const length3 = this.rows.length;
|
|
r6 = r2;
|
|
r7 = r3;
|
|
r8 = r34;
|
|
if (!(r8 < length3)) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
rows = r17.filter((item) => item.changeType !== Changeset.NOOP);
|
|
}
|
|
this._messages = this.messages;
|
|
this._rows = this.rows;
|
|
return rows;
|
|
}
|
|
}
|
|
export default ChatManager;
|
|
export { r17 as MockChatManager };
|