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