// Metro module 10414 (f10415). import { RowType } from "./renderer/RowGeneratorConstants"; export default class VisibleMessagesWindowHandler { data = null; callback = null; setCallback = (a0) => { this.callback = a0; if (this.data != null) { this.callback(this.data); } }; clearCallback = () => { this.callback = null; this.data = null; }; handleScrollPosition = ({ rows, firstVisibleMessageRowIndex, lastVisibleMessageRowIndex }) => { let r54, r87; if (this.callback != null) { const r1 = firstVisibleMessageRowIndex != null; let topVisibleMessage = null; if (r1) { const r2 = firstVisibleMessageRowIndex >= 0; let r20 = firstVisibleMessageRowIndex; topVisibleMessage = null; if (r2) { do { const r14 = rows[r20]; const r21 = r14 != null; const r10 = r20; topVisibleMessage = r21 ? "rowType" in r14 ? r14.rowType === RowType.MESSAGE ? r14.message.id : void 0 : r14.type === RowType.MESSAGE ? r14.message?.id : void 0 : void 0; if (topVisibleMessage != null) { break; } r20 = r10 - 1; topVisibleMessage = null; } while (r20 >= 0); } } const r31 = lastVisibleMessageRowIndex != null; let bottomVisibleMessage = null; if (r31) { const r34 = lastVisibleMessageRowIndex < rows.length; let r37 = lastVisibleMessageRowIndex; bottomVisibleMessage = null; if (r34) { do { const r38 = rows[r37]; const r39 = r38 != null; const r40 = r37; bottomVisibleMessage = r39 ? "rowType" in r38 ? r38.rowType === RowType.MESSAGE ? r38.message.id : void 0 : r38.type === RowType.MESSAGE ? r38.message?.id : void 0 : void 0; if (bottomVisibleMessage != null) { break; } const r52 = r40 + 1; r54 = r52 < rows.length; r37 = r52; bottomVisibleMessage = null; } while (r54); } } const r55 = firstVisibleMessageRowIndex != null; let middleVisibleMessage = null; if (r55) { const r57 = lastVisibleMessageRowIndex != null; middleVisibleMessage = null; if (r57) { let r65 = firstVisibleMessageRowIndex + Math.floor((lastVisibleMessageRowIndex - firstVisibleMessageRowIndex) / 2); const r67 = r65 < rows.length; middleVisibleMessage = null; if (r67) { do { const r70 = rows[r65]; const r71 = r70 != null; const r72 = r65; middleVisibleMessage = r71 ? "rowType" in r70 ? r70.rowType === RowType.MESSAGE ? r70.message.id : void 0 : r70.type === RowType.MESSAGE ? r70.message?.id : void 0 : void 0; if (middleVisibleMessage != null) { break; } const r85 = r72 + 1; r87 = r85 < rows.length; r65 = r85; middleVisibleMessage = null; } while (r87); } } } this.data = { topVisibleMessage, middleVisibleMessage, bottomVisibleMessage }; this.callback(this.data); } }; };