fix: update conditional check last status message (#1951)

* fix: update conditional check last status message

* fix: no new message on failed message

---------

Co-authored-by: Louis <louis@jan.ai>
This commit is contained in:
Faisal Amir 2024-02-07 18:07:12 +07:00 committed by GitHub
parent 5890ade451
commit 9a1b1adc72
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 16 additions and 11 deletions

View File

@ -128,10 +128,10 @@ export default function EventHandler({ children }: { children: ReactNode }) {
const thread = threadsRef.current?.find((e) => e.id == message.thread_id) const thread = threadsRef.current?.find((e) => e.id == message.thread_id)
if (thread) { if (thread) {
const messageContent = message.content[0]?.text.value ?? '' const messageContent = message.content[0]?.text?.value
const metadata = { const metadata = {
...thread.metadata, ...thread.metadata,
lastMessage: messageContent, ...(messageContent && { lastMessage: messageContent }),
} }
updateThread({ updateThread({
@ -151,7 +151,7 @@ export default function EventHandler({ children }: { children: ReactNode }) {
?.addNewMessage(message) ?.addNewMessage(message)
} }
}, },
[updateMessage, updateThreadWaiting, setIsGeneratingResponse] [updateMessage, updateThreadWaiting, setIsGeneratingResponse, updateThread]
) )
useEffect(() => { useEffect(() => {

View File

@ -70,11 +70,12 @@ export const addNewMessageAtom = atom(
set(chatMessages, newData) set(chatMessages, newData)
// Update thread last message // Update thread last message
set( if (newMessage.content.length)
updateThreadStateLastMessageAtom, set(
newMessage.thread_id, updateThreadStateLastMessageAtom,
newMessage.content newMessage.thread_id,
) newMessage.content
)
} }
) )
@ -131,7 +132,8 @@ export const updateMessageAtom = atom(
newData[conversationId] = updatedMessages newData[conversationId] = updatedMessages
set(chatMessages, newData) set(chatMessages, newData)
// Update thread last message // Update thread last message
set(updateThreadStateLastMessageAtom, conversationId, text) if (text.length)
set(updateThreadStateLastMessageAtom, conversationId, text)
} }
} }
) )

View File

@ -6,6 +6,7 @@ import {
ThreadAssistantInfo, ThreadAssistantInfo,
ThreadState, ThreadState,
Model, Model,
MessageStatus,
} from '@janhq/core' } from '@janhq/core'
import { atom, useAtomValue, useSetAtom } from 'jotai' import { atom, useAtomValue, useSetAtom } from 'jotai'
@ -20,6 +21,7 @@ import useSetActiveThread from './useSetActiveThread'
import { extensionManager } from '@/extension' import { extensionManager } from '@/extension'
import { getCurrentChatMessagesAtom } from '@/helpers/atoms/ChatMessage.atom'
import { import {
threadsAtom, threadsAtom,
threadStatesAtom, threadStatesAtom,
@ -51,6 +53,7 @@ export const useCreateNewThread = () => {
const setFileUpload = useSetAtom(fileUploadAtom) const setFileUpload = useSetAtom(fileUploadAtom)
const setSelectedModel = useSetAtom(selectedModelAtom) const setSelectedModel = useSetAtom(selectedModelAtom)
const setThreadModelParams = useSetAtom(setThreadModelParamsAtom) const setThreadModelParams = useSetAtom(setThreadModelParamsAtom)
const messages = useAtomValue(getCurrentChatMessagesAtom)
const { recommendedModel, downloadedModels } = useRecommendedModel() const { recommendedModel, downloadedModels } = useRecommendedModel()
@ -63,9 +66,9 @@ export const useCreateNewThread = () => {
const defaultModel = model ?? recommendedModel ?? downloadedModels[0] const defaultModel = model ?? recommendedModel ?? downloadedModels[0]
// check last thread message, if there empty last message use can not create thread // check last thread message, if there empty last message use can not create thread
const lastMessage = threads[0]?.metadata?.lastMessage const lastMessage = threads[threads.length - 1]?.metadata?.lastMessage
if (!lastMessage && threads.length) { if (!lastMessage && threads.length && !messages.length) {
return null return null
} }