diff --git a/app/backend/InputOutputHandler.tsx b/app/backend/InputOutputHandler.tsx index e56bbe9..1a4817b 100644 --- a/app/backend/InputOutputHandler.tsx +++ b/app/backend/InputOutputHandler.tsx @@ -21,7 +21,7 @@ const InputOutputBackend: React.FC = () => { const [preferredMeasurement, setPreferredMeasurement] = useState("metric"); const [timeZone, setTimeZone] = useState("GMT"); const [dateFormat, setDateFormat] = useState("DD-MM-YYYY"); - const [messages, setMessages] = useState(chatHistory.chats[chatHistory.selectedIndex].messages || []); + const [messages, setMessages] = useState(chatHistory.chats[chatHistory.selectedIndex]?.messages || []); const [myBoolean, setMyBoolean] = useState(false); const [systemMessage, setSystemMessage] = useState("You are a helpful assistant") const apiURL = new URL("http://localhost:5000/interstellar_ai/api/ai_create") @@ -31,26 +31,22 @@ const InputOutputBackend: React.FC = () => { apiURL.hostname = "localhost" } - console.log(setSelectedIndex) + useEffect(() => { -useEffect(() => { console.log("History", chatHistory); console.log("Messages", messages); // Get the current chat's messages - const currentMessages = chatHistory.chats[chatHistory.selectedIndex].messages || []; + const currentMessages = chatHistory.chats[chatHistory.selectedIndex]?.messages || []; - // If the selected chat has messages, set them - if (currentMessages.length > 0) { + // If currentMessages is not empty, update messages only if it's not the same + if (currentMessages.length > 0 && JSON.stringify(currentMessages) !== JSON.stringify(messages)) { setMessages(currentMessages); - } else if (currentMessages.length === 0) { - // When creating a new chat and no messages exist yet, set default messages - addMessage("system", systemMessage) - addMessage("assistant", "Hello! How can I help you?") - console.log(systemMessage) + } else if (messages.length === 0) { + setMessages([{ role: "system", content: systemMessage }, { role: "assistant", content: "Hello! How can I help you?" }]); } -}, [chatHistory, chatHistory.selectedIndex, systemMessage]); +}, [chatHistory, setSelectedIndex]); // Update messages when any of the settings change useEffect(() => { diff --git a/app/hooks/useChatHistory.tsx b/app/hooks/useChatHistory.tsx index b2aceb0..29f9b97 100644 --- a/app/hooks/useChatHistory.tsx +++ b/app/hooks/useChatHistory.tsx @@ -19,7 +19,8 @@ interface GlobalChatHistory { let globalChatHistory: GlobalChatHistory = { chats: [ - { name: "Welcome!", messages: [{role:"system",content:"you are a helpful assistant"},{role:"assistant",content:"Hello! How can I help you?"}], timestamp: 4 }, + { name: "Chat 1", messages: [{role:"system",content:"you are a helpful assistant"},{role:"assistant",content:"how can i help you"}], timestamp: 4 }, + { name: "Chat 2", messages: [{role:"system",content:"you are a helpful assistant"},{role:"assistant",content:"how can i help you"}], timestamp: 4 }, ], selectedIndex:0 }