checkpoint chat

This commit is contained in:
Christian Rute 2024-10-30 15:11:26 +01:00
parent 1102404c9d
commit a17f7b2a1b

View File

@ -1,4 +1,5 @@
let chatCount = 0; // Zähler für Chat-Sessions let chatCount = 0; // Zähler für Chat-Sessions
let currentChatId = null; // Aktuell angezeigte Chat-ID
document.getElementById('newChatButton').addEventListener('click', () => { document.getElementById('newChatButton').addEventListener('click', () => {
createNewChat(); createNewChat();
@ -9,18 +10,18 @@ document.getElementById('sendButton').addEventListener('click', () => {
const chatInput = document.getElementById('chatInput'); const chatInput = document.getElementById('chatInput');
const messageText = chatInput.value.trim(); const messageText = chatInput.value.trim();
if (messageText !== '') { if (messageText !== '' && currentChatId !== null) { // Stelle sicher, dass eine Chat-ID vorhanden ist
const messageElement = document.createElement('div'); const messageElement = document.createElement('div');
messageElement.classList.add('chat-message', 'user'); messageElement.classList.add('chat-message', 'user');
messageElement.innerText = messageText; messageElement.innerText = messageText;
chatBox.prepend(messageElement); chatBox.prepend(messageElement);
// Nachricht speichern // 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 // Sidebar-Button für den Chat-Verlauf erstellen, falls noch nicht vorhanden
if (document.getElementById(`chatSession-${chatCount}`) === null) { if (document.getElementById(`chatSession-${currentChatId}`) === null) {
createChatSessionButton(chatCount); createChatSessionButton(currentChatId);
} }
chatInput.value = ''; // Input-Feld leeren chatInput.value = ''; // Input-Feld leeren
@ -33,12 +34,26 @@ function createNewChat() {
localStorage.setItem(`chatHistory-${newChatId}`, JSON.stringify([])); // Leeren Chat speichern localStorage.setItem(`chatHistory-${newChatId}`, JSON.stringify([])); // Leeren Chat speichern
createChatSessionButton(newChatId); // Button für den neuen Chat erstellen createChatSessionButton(newChatId); // Button für den neuen Chat erstellen
loadChatHistory(newChatId); // Lade den neuen Chat loadChatHistory(newChatId); // Lade den neuen Chat
currentChatId = newChatId; // Setze die aktuelle Chat-ID
} }
function saveMessage(chatId, message) { function saveMessage(chatId, message) {
const chatHistory = JSON.parse(localStorage.getItem(`chatHistory-${chatId}`)) || []; const chatHistory = JSON.parse(localStorage.getItem(`chatHistory-${chatId}`)) || [];
chatHistory.push({ user: "user", text: message }); chatHistory.push({ user: "user", text: message });
localStorage.setItem(`chatHistory-${chatId}`, JSON.stringify(chatHistory)); 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) { function createChatSessionButton(chatId) {
@ -52,8 +67,11 @@ function createChatSessionButton(chatId) {
const button = document.createElement('button'); const button = document.createElement('button');
button.classList.add('chat-session-button'); button.classList.add('chat-session-button');
button.id = `chatSession-${chatId}`; button.id = `chatSession-${chatId}`;
button.innerText = `Chat ${chatId + 1}`; button.innerText = `Chat ${chatId + 1}`; // Vorläufiger Name
button.addEventListener('click', () => loadChatHistory(chatId)); 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 // Löschen-Button
const deleteButton = document.createElement('button'); const deleteButton = document.createElement('button');
@ -81,6 +99,8 @@ function loadChatHistory(chatId) {
messageElement.innerText = entry.text; messageElement.innerText = entry.text;
chatBox.prepend(messageElement); chatBox.prepend(messageElement);
}); });
currentChatId = chatId; // Setze die aktuelle Chat-ID
} }
function deleteChat(chatId, buttonContainer) { function deleteChat(chatId, buttonContainer) {