Update conversations.php

This commit is contained in:
Lizandro Guarnizo
2026-01-24 09:49:28 -05:00
parent 242055f33f
commit 9045827760
+8 -43
View File
@@ -940,8 +940,8 @@
// Track whether the user is actively scrolling/reading to avoid forcing scroll-to-bottom
this._userScrolling = false;
this._userScrollTimer = null;
// Track last known messages count to show "Nuevos mensajes" indicator when new messages arrive while user is reading
this._lastRenderMessageCount = 0;
// Removed: automatic "Nuevos mensajes" indicator — we always reload full conversation now
// this._lastRenderMessageCount = 0;
this.init();
}
@@ -1535,11 +1535,11 @@
}, 30000);
// Actualizar mensajes del chat activo cada 10 segundos
// Use incremental load (initial=false) to avoid forcing scroll to bottom while the user reads
// Use full reload (initial=true) — always fetch the full conversation and scroll to bottom
setInterval(() => {
if (this.currentUserId) {
// loadMessages with initial=false fetches older/newer messages without forcing a scroll
this.loadMessages(this.currentUserId, false).catch(err => console.warn('Periodic loadMessages failed', err));
// full reload forces scroll-to-bottom
this.loadMessages(this.currentUserId, true).catch(err => console.warn('Periodic loadMessages failed', err));
}
}, 10000);
}
@@ -2537,21 +2537,10 @@
const nearBottom = (container.scrollHeight - container.scrollTop - container.clientHeight) < 150;
const shouldScroll = initial ? true : (nearBottom && !this._userScrolling);
// Determine if we received new messages since last render
const prevCount = this._lastRenderMessageCount || 0;
const newCount = this.conversations.length || 0;
const added = Math.max(0, newCount - prevCount);
if (shouldScroll) {
this.scrollToBottom();
// hide indicator if visible
if (added) this.hideNewMessagesIndicator();
} else {
if (added > 0) this.showNewMessagesIndicator(added);
}
// Save for next render
this._lastRenderMessageCount = newCount;
}
@@ -2704,37 +2693,13 @@
return true;
}
// --- New messages indicator helpers ---
// --- New messages indicator helpers (removed) ---
showNewMessagesIndicator(count) {
try {
let el = document.getElementById('new-messages-indicator');
if (!el) {
el = document.createElement('div');
el.id = 'new-messages-indicator';
el.style.position = 'fixed';
el.style.bottom = '90px';
el.style.left = '50%';
el.style.transform = 'translateX(-50%)';
el.style.background = '#0d6efd';
el.style.color = 'white';
el.style.padding = '8px 12px';
el.style.borderRadius = '20px';
el.style.boxShadow = '0 2px 8px rgba(0,0,0,0.2)';
el.style.zIndex = '2000';
el.style.cursor = 'pointer';
el.onclick = () => { this.scrollToBottom(); this.hideNewMessagesIndicator(); };
document.body.appendChild(el);
}
el.textContent = (count > 1) ? (`${count} mensajes nuevos`) : '1 mensaje nuevo';
el.style.display = 'block';
} catch (e) { console.warn('showNewMessagesIndicator failed', e); }
// No-op: indicator removed — full reload & scroll-to-bottom now used
}
hideNewMessagesIndicator() {
try {
const el = document.getElementById('new-messages-indicator');
if (el) el.style.display = 'none';
} catch (e) { console.warn('hideNewMessagesIndicator failed', e); }
// No-op
}
getStatusIcon(status) {