From a17f7b2a1bd9b3e014352ef2f7c72b17fd04dc93 Mon Sep 17 00:00:00 2001 From: Christian Rute Date: Wed, 30 Oct 2024 15:11:26 +0100 Subject: [PATCH] checkpoint chat --- client/js/chat.js | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/client/js/chat.js b/client/js/chat.js index e24d90d..43629cb 100644 --- a/client/js/chat.js +++ b/client/js/chat.js @@ -1,4 +1,5 @@ let chatCount = 0; // Zähler für Chat-Sessions +let currentChatId = null; // Aktuell angezeigte Chat-ID document.getElementById('newChatButton').addEventListener('click', () => { createNewChat(); @@ -9,18 +10,18 @@ document.getElementById('sendButton').addEventListener('click', () => { const chatInput = document.getElementById('chatInput'); const messageText = chatInput.value.trim(); - if (messageText !== '') { + if (messageText !== '' && currentChatId !== null) { // Stelle sicher, dass eine Chat-ID vorhanden ist const messageElement = document.createElement('div'); messageElement.classList.add('chat-message', 'user'); messageElement.innerText = messageText; chatBox.prepend(messageElement); // Nachricht speichern - saveMessage(chatCount, messageText); + saveMessage(currentChatId, messageText); // Verwende die aktuelle Chat-ID // Sidebar-Button für den Chat-Verlauf erstellen, falls noch nicht vorhanden - if (document.getElementById(`chatSession-${chatCount}`) === null) { - createChatSessionButton(chatCount); + if (document.getElementById(`chatSession-${currentChatId}`) === null) { + createChatSessionButton(currentChatId); } chatInput.value = ''; // Input-Feld leeren @@ -33,12 +34,26 @@ function createNewChat() { localStorage.setItem(`chatHistory-${newChatId}`, JSON.stringify([])); // Leeren Chat speichern createChatSessionButton(newChatId); // Button für den neuen Chat erstellen loadChatHistory(newChatId); // Lade den neuen Chat + currentChatId = newChatId; // Setze die aktuelle Chat-ID } function saveMessage(chatId, message) { const chatHistory = JSON.parse(localStorage.getItem(`chatHistory-${chatId}`)) || []; chatHistory.push({ user: "user", text: message }); localStorage.setItem(`chatHistory-${chatId}`, JSON.stringify(chatHistory)); + + // Aktualisiere den Button-Text in der Sidebar + updateChatSessionButton(chatId, message); +} + +function updateChatSessionButton(chatId, message) { + const button = document.getElementById(`chatSession-${chatId}`); + if (button) { + const chatHistory = JSON.parse(localStorage.getItem(`chatHistory-${chatId}`)) || []; + // Hole die erste Nachricht oder lasse es leer, wenn keine vorhanden ist + const chatName = chatHistory.length > 0 ? chatHistory[0].text.slice(0, 10) : ''; // Nimm die ersten 10 Zeichen der ersten Nachricht + button.innerText = chatName + "..." || `Chat ${chatId + 1}`; // Falls leer, setze auf "Chat x" + } } function createChatSessionButton(chatId) { @@ -52,8 +67,11 @@ function createChatSessionButton(chatId) { const button = document.createElement('button'); button.classList.add('chat-session-button'); button.id = `chatSession-${chatId}`; - button.innerText = `Chat ${chatId + 1}`; - button.addEventListener('click', () => loadChatHistory(chatId)); + button.innerText = `Chat ${chatId + 1}`; // Vorläufiger Name + button.addEventListener('click', () => { + loadChatHistory(chatId); // Lade den Chat-Verlauf und setze die aktuelle Chat-ID + currentChatId = chatId; // Setze die aktuelle Chat-ID auf die ausgewählte Chat-ID + }); // Löschen-Button const deleteButton = document.createElement('button'); @@ -81,6 +99,8 @@ function loadChatHistory(chatId) { messageElement.innerText = entry.text; chatBox.prepend(messageElement); }); + + currentChatId = chatId; // Setze die aktuelle Chat-ID } function deleteChat(chatId, buttonContainer) {