| @@ -66,7 +66,7 @@ export const useSelectParserList = (): Array<{ | |||
| }; | |||
| export const useLogout = () => { | |||
| const dispatch = useDispatch(); | |||
| const dispatch = useDispatch(); // TODO: clear redux state | |||
| const logout = useCallback((): number => { | |||
| return dispatch<any>({ type: 'loginModel/logout' }); | |||
| @@ -162,15 +162,13 @@ const MessageItem = ({ | |||
| })} | |||
| > | |||
| {item.role === MessageType.User ? ( | |||
| userInfo.avatar ?? ( | |||
| <Avatar | |||
| size={40} | |||
| src={ | |||
| userInfo.avatar ?? | |||
| 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png' | |||
| } | |||
| /> | |||
| ) | |||
| <Avatar | |||
| size={40} | |||
| src={ | |||
| userInfo.avatar ?? | |||
| 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png' | |||
| } | |||
| /> | |||
| ) : ( | |||
| <AssistantIcon></AssistantIcon> | |||
| )} | |||
| @@ -264,22 +264,26 @@ export const useSelectConversationList = () => { | |||
| const prologue = currentDialog?.prompt_config?.prologue ?? ''; | |||
| const addTemporaryConversation = useCallback(() => { | |||
| setList(() => { | |||
| const nextList = [ | |||
| { | |||
| id: '', | |||
| name: 'New conversation', | |||
| dialog_id: dialogId, | |||
| message: [ | |||
| { | |||
| content: prologue, | |||
| role: MessageType.Assistant, | |||
| }, | |||
| ], | |||
| } as IConversation, | |||
| ...conversationList, | |||
| ]; | |||
| return nextList; | |||
| setList((pre) => { | |||
| if (dialogId) { | |||
| const nextList = [ | |||
| { | |||
| id: '', | |||
| name: 'New conversation', | |||
| dialog_id: dialogId, | |||
| message: [ | |||
| { | |||
| content: prologue, | |||
| role: MessageType.Assistant, | |||
| }, | |||
| ], | |||
| } as IConversation, | |||
| ...conversationList, | |||
| ]; | |||
| return nextList; | |||
| } | |||
| return pre; | |||
| }); | |||
| }, [conversationList, dialogId, prologue]); | |||
| @@ -368,7 +372,7 @@ export const useSelectCurrentConversation = () => { | |||
| }, []); | |||
| const addPrologue = useCallback(() => { | |||
| if (conversationId === '') { | |||
| if (dialogId !== '' && conversationId === '') { | |||
| const prologue = dialog.prompt_config?.prologue; | |||
| const nextMessage = { | |||
| @@ -239,7 +239,7 @@ const Chat = () => { | |||
| > | |||
| <Space> | |||
| <b>Chat</b> | |||
| <Tag>25</Tag> | |||
| <Tag>{conversationList.length}</Tag> | |||
| </Space> | |||
| <Dropdown menu={{ items }}> | |||
| <FormOutlined /> | |||
| @@ -59,20 +59,6 @@ const model: DvaModel<ChatModelState> = { | |||
| currentConversation: { ...payload, message: messageList }, | |||
| }; | |||
| }, | |||
| addEmptyConversationToList(state, {}) { | |||
| const list = [...state.conversationList]; | |||
| // if (list.every((x) => x.id !== 'empty')) { | |||
| // list.push({ | |||
| // id: 'empty', | |||
| // name: 'New conversation', | |||
| // message: [], | |||
| // }); | |||
| // } | |||
| return { | |||
| ...state, | |||
| conversationList: list, | |||
| }; | |||
| }, | |||
| }, | |||
| effects: { | |||
| @@ -100,7 +86,9 @@ const model: DvaModel<ChatModelState> = { | |||
| }, | |||
| *listDialog({ payload }, { call, put }) { | |||
| const { data } = yield call(chatService.listDialog, payload); | |||
| yield put({ type: 'setDialogList', payload: data.data }); | |||
| if (data.retcode === 0) { | |||
| yield put({ type: 'setDialogList', payload: data.data }); | |||
| } | |||
| }, | |||
| *listConversation({ payload }, { call, put }) { | |||
| const { data } = yield call(chatService.listConversation, payload); | |||