Fix errors for RangeErrors, Fix for accessing undefined objects in Chat.svelte

This commit is contained in:
Vojtěch Šiler 2025-01-07 08:54:42 +01:00
parent 1dfb479d36
commit 70a6a0d9e8
2 changed files with 21 additions and 17 deletions

View File

@ -839,13 +839,15 @@
if (res !== null && res.messages) { if (res !== null && res.messages) {
// Update chat history with the new messages // Update chat history with the new messages
for (const message of res.messages) { for (const message of res.messages) {
history.messages[message.id] = { if (message && message.id) { // Add null check for message and message.id
...history.messages[message.id], history.messages[message.id] = {
...(history.messages[message.id].content !== message.content ...history.messages[message.id],
? { originalContent: history.messages[message.id].content } ...(history.messages[message.id].content !== message.content
: {}), ? { originalContent: history.messages[message.id].content }
...message : {}),
}; ...message
};
}
} }
} }
@ -1348,7 +1350,7 @@
history.currentId = responseMessageId; history.currentId = responseMessageId;
// Append messageId to childrenIds of parent message // Append messageId to childrenIds of parent message
if (parentId !== null) { if (parentId !== null && history.messages[parentId]) { // Add null check before accessing childrenIds
history.messages[parentId].childrenIds = [ history.messages[parentId].childrenIds = [
...history.messages[parentId].childrenIds, ...history.messages[parentId].childrenIds,
responseMessageId responseMessageId
@ -1526,7 +1528,7 @@
: undefined : undefined
}, },
files: files.length > 0 ? files : undefined, files: (files?.length ?? 0) > 0 ? files : undefined,
tool_ids: selectedToolIds.length > 0 ? selectedToolIds : undefined, tool_ids: selectedToolIds.length > 0 ? selectedToolIds : undefined,
features: { features: {
web_search: webSearchEnabled web_search: webSearchEnabled

View File

@ -158,14 +158,16 @@ export const AIAutocompletion = Extension.create({
if ( if (
view.state.selection.$head.pos === view.state.selection.$head.end() view.state.selection.$head.pos === view.state.selection.$head.end()
) { ) {
view.dispatch( if (view.state === newState) {
newState.tr.setNodeMarkup(currentPos, null, { view.dispatch(
...newNode.attrs, newState.tr.setNodeMarkup(currentPos, null, {
class: 'ai-autocompletion', ...newNode.attrs,
'data-prompt': prompt, class: 'ai-autocompletion',
'data-suggestion': suggestion 'data-prompt': prompt,
}) 'data-suggestion': suggestion
); })
);
}
} }
} }
}) })