Update conversations.php
This commit is contained in:
+30
-2
@@ -1034,6 +1034,8 @@
|
|||||||
this._stagedMessages = [];
|
this._stagedMessages = [];
|
||||||
// Last message timestamp seen (for delta polling)
|
// Last message timestamp seen (for delta polling)
|
||||||
this._latestMessage = null;
|
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
|
// Removed: automatic "Nuevos mensajes" indicator — we always reload full conversation now
|
||||||
// this._lastRenderMessageCount = 0;
|
// this._lastRenderMessageCount = 0;
|
||||||
|
|
||||||
@@ -1213,8 +1215,25 @@
|
|||||||
} else if (userId) {
|
} else if (userId) {
|
||||||
const conv = this.conversations.find(c => c.user_id == userId);
|
const conv = this.conversations.find(c => c.user_id == userId);
|
||||||
if (conv) {
|
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);
|
this.openConversation(conv.user_id, conv.name, conv.phone_number);
|
||||||
} else {
|
} 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', '');
|
this.openConversation(userId, 'Usuario', '');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2723,9 +2742,18 @@
|
|||||||
try {
|
try {
|
||||||
// Not sending 'before' param due to unstable server behavior in some cases.
|
// Not sending 'before' param due to unstable server behavior in some cases.
|
||||||
// The server-side pagination/fallback and client-side dedupe should handle continuity.
|
// 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');
|
if (!data) throw new Error('No autorizado o error en la petición');
|
||||||
|
|
||||||
let messages = [];
|
let messages = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user