diff --git a/templates/pages/chat.html b/templates/pages/chat.html index 922916e..1e92f12 100644 --- a/templates/pages/chat.html +++ b/templates/pages/chat.html @@ -552,57 +552,19 @@ const content = input.value.trim(); if (content === '') return; - const tempId = 'temp-' + Date.now(); const msg = { type: 'message', content: content, replyTo: replyToId }; - // Show message immediately with "sending" status - const tempMsg = { - id: tempId, - content: content, - username: currentUsername, - timestamp: new Date().toISOString(), - replyTo: replyToId, - status: 'sending' - }; - appendMessage(tempMsg, true); - if (ws && ws.readyState === WebSocket.OPEN) { ws.send(JSON.stringify(msg)); input.value = ''; cancelReply(); - - // Update status to "sent" after a brief delay - setTimeout(() => { - const msgElement = document.getElementById('msg-' + tempId); - if (msgElement) { - const statusSpan = msgElement.querySelector('.message-status'); - if (statusSpan) { - statusSpan.className = 'message-status sent'; - statusSpan.textContent = '✓'; - } - } - }, 500); } else { - // Mark as failed if not connected - setTimeout(() => { - const msgElement = document.getElementById('msg-' + tempId); - if (msgElement) { - const statusSpan = msgElement.querySelector('.message-status'); - if (statusSpan) { - statusSpan.className = 'message-status failed'; - statusSpan.textContent = '✗ Failed - Click to retry'; - statusSpan.onclick = () => { - msgElement.remove(); - sendMessage(); - }; - } - } - }, 500); console.error("WebSocket is not open. Current state:", ws ? ws.readyState : 'undefined'); + alert("Cannot send message: Not connected to chat server"); } } @@ -647,13 +609,12 @@ } } - function appendMessage(msg, isOptimistic = false) { + function appendMessage(msg) { const messages = document.getElementById('chat-messages'); - // Don't duplicate if this is a real message and we already have the optimistic one - if (!isOptimistic && document.getElementById('msg-temp-' + msg.id)) { - const tempMsg = document.getElementById('msg-temp-' + msg.id); - tempMsg.remove(); + // Check if message already exists (prevent duplicates) + if (document.getElementById('msg-' + msg.id)) { + return; // Don't add duplicate messages } // Check if user is at bottom before adding message @@ -672,17 +633,11 @@ } let replyHTML = msg.replyTo > 0 ? `
Replying to message...
` : ''; - let statusHTML = ''; - if (isOptimistic) { - statusHTML = ``; - } - msgDiv.innerHTML = `
${pfpHTML} ${msg.username} ${new Date(msg.timestamp).toLocaleString()} - ${statusHTML}
${replyHTML}
${msg.content}
@@ -699,7 +654,7 @@ updateUnreadBadge(); } else { // User is not at bottom, increment unread - if (!isOptimistic && msg.username !== currentUsername) { + if (msg.username !== currentUsername) { unreadCount++; updateUnreadBadge(); }