feat: bind length of conversationList to chat count (#116)

This commit is contained in:
balibabu 2024-03-08 19:33:33 +08:00 committed by GitHub
parent bcb58b7e71
commit c7c451bb9f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 33 additions and 43 deletions

View File

@ -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' });

View File

@ -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>
)}

View File

@ -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 = {

View File

@ -239,7 +239,7 @@ const Chat = () => {
>
<Space>
<b>Chat</b>
<Tag>25</Tag>
<Tag>{conversationList.length}</Tag>
</Space>
<Dropdown menu={{ items }}>
<FormOutlined />

View File

@ -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);