diff --git a/conversations.php b/conversations.php index 66ef728..db25677 100644 --- a/conversations.php +++ b/conversations.php @@ -2238,16 +2238,30 @@ } catch (error) { console.error('Error en loadMessages:', error); - if (container) { - container.innerHTML = ` -
- -

Error al cargar los mensajes: ${error.message || error}

- -
- `; - const retryBtn = document.getElementById('retry-load-messages'); - if (retryBtn) retryBtn.addEventListener('click', async () => { await this.loadMessages(userId, true); }); + + // Si la carga es paginada (no "initial"), preservamos la vista actual en vez de borrar el DOM. + if (!initial) { + try { if (topLoader && topLoader.parentNode) topLoader.remove(); } catch (e) {} + this.hasMoreMessages = false; + // Notificar de forma no intrusiva + if (typeof showAlert === 'function') { + showAlert('No se pudieron cargar mensajes anteriores: ' + (error.message || error), 'warning'); + } else { + console.warn('No se pudieron cargar mensajes anteriores:', error); + } + } else { + // En cargas iniciales mostramos el mensaje de error y botón de reintento (comportamiento previo) + if (container) { + container.innerHTML = ` +
+ +

Error al cargar los mensajes: ${error.message || error}

+ +
+ `; + const retryBtn = document.getElementById('retry-load-messages'); + if (retryBtn) retryBtn.addEventListener('click', async () => { await this.loadMessages(userId, true); }); + } } } finally { this.loadingMessages = false;