Update conversations.php

This commit is contained in:
Lizandro Guarnizo
2026-01-27 01:11:24 -05:00
parent 83132ff0d5
commit ab4e9b6438
+30 -2
View File
@@ -1034,6 +1034,8 @@
this._stagedMessages = [];
// Last message timestamp seen (for delta polling)
this._latestMessage = null;
// Preloaded messages cache used when we explicitly fetch before opening a conversation
this._preloadedMessages = null;
// Removed: automatic "Nuevos mensajes" indicator — we always reload full conversation now
// this._lastRenderMessageCount = 0;
@@ -1213,8 +1215,25 @@
} else if (userId) {
const conv = this.conversations.find(c => c.user_id == userId);
if (conv) {
// Prefetch messages then open conversation using preloaded data to avoid double-fetch
try {
const url = `get_user_messages.php?user_id=${encodeURIComponent(userId)}&limit=${this.messageLimit}`;
const resp = await this.apiCall(url);
if (resp && resp.success) {
this._preloadedMessages = { userId: userId, resp: resp };
}
} catch (e) { console.warn('Prefetch messages failed', e); }
this.openConversation(conv.user_id, conv.name, conv.phone_number);
} else {
try {
const url = `get_user_messages.php?user_id=${encodeURIComponent(userId)}&limit=${this.messageLimit}`;
const resp = await this.apiCall(url);
if (resp && resp.success) {
this._preloadedMessages = { userId: userId, resp: resp };
}
} catch (e) { console.warn('Prefetch messages failed', e); }
this.openConversation(userId, 'Usuario', '');
}
}
@@ -2723,9 +2742,18 @@
try {
// Not sending 'before' param due to unstable server behavior in some cases.
// The server-side pagination/fallback and client-side dedupe should handle continuity.
let url = `get_user_messages.php?user_id=${userId}&limit=${this.messageLimit}`;
// If we prefetched data (e.g. from notification click), use it to avoid double fetch
let data = null;
if (initial && this._preloadedMessages && this._preloadedMessages.userId == userId && this._preloadedMessages.resp) {
data = this._preloadedMessages.resp;
// clear preloaded cache
this._preloadedMessages = null;
if (console && console.debug) console.debug('Using preloaded messages for user', userId);
} else {
let url = `get_user_messages.php?user_id=${userId}&limit=${this.messageLimit}`;
data = await this.apiCall(url);
}
const data = await this.apiCall(url);
if (!data) throw new Error('No autorizado o error en la petición');
let messages = [];