Update conversations.php
This commit is contained in:
+30
-2
@@ -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 = [];
|
||||
|
||||
Reference in New Issue
Block a user