Browse Source

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

tags/v0.1.0
balibabu 1 year ago
parent
commit
c7c451bb9f
No account linked to committer's email address

+ 1
- 1
web/src/hooks/userSettingHook.ts 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' });

+ 7
- 9
web/src/pages/chat/chat-container/index.tsx 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>
)}

+ 21
- 17
web/src/pages/chat/hooks.ts 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 = {

+ 1
- 1
web/src/pages/chat/index.tsx View File

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

+ 3
- 15
web/src/pages/chat/model.ts 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);

Loading…
Cancel
Save