2023-07-05 15:00:20 +08:00
|
|
|
|
2023-08-21 14:00:34 +08:00
|
|
|
import { Stack, Container, Divider } from "@mantine/core";
|
2023-06-05 19:27:25 +08:00
|
|
|
import React from "react";
|
2023-08-21 14:07:11 +08:00
|
|
|
import MessageBody from "@/views/components/MessageBody";
|
2023-08-21 13:56:42 +08:00
|
|
|
import MessageAvatar from "@/views/components/MessageAvatar";
|
2023-08-18 00:24:10 +08:00
|
|
|
import { observer } from "mobx-react-lite";
|
|
|
|
import { useMst } from "@/views/stores/RootStore";
|
2023-08-21 14:00:34 +08:00
|
|
|
import MessageContext from "@/views/components/MessageContext";
|
2023-06-08 19:28:15 +08:00
|
|
|
|
|
|
|
|
2023-08-21 13:53:32 +08:00
|
|
|
const MessageList = observer((props: any) => {
|
2023-06-08 20:40:05 +08:00
|
|
|
const { width } = props;
|
2023-08-18 00:24:10 +08:00
|
|
|
const { chat } = useMst();
|
2023-06-08 19:28:15 +08:00
|
|
|
|
2023-08-18 00:24:10 +08:00
|
|
|
return (<>
|
2023-08-18 11:25:28 +08:00
|
|
|
{chat.messages.map((item, index: number) => {
|
2023-08-21 15:28:19 +08:00
|
|
|
const { message: messageText, type: messageType, hash: messageHash, contexts } = item;
|
2023-08-18 00:24:10 +08:00
|
|
|
// setMessage(messageText);
|
|
|
|
return <Stack
|
|
|
|
spacing={0}
|
|
|
|
key={`message-${index}`}
|
2023-06-05 19:27:25 +08:00
|
|
|
sx={{
|
2023-06-14 12:28:03 +08:00
|
|
|
width: width,
|
2023-08-18 00:24:10 +08:00
|
|
|
padding: 0,
|
|
|
|
margin: 0,
|
2023-06-05 19:27:25 +08:00
|
|
|
}}>
|
2023-08-21 13:56:42 +08:00
|
|
|
<MessageAvatar
|
2023-08-18 00:24:10 +08:00
|
|
|
key={`message-header-${index}`}
|
|
|
|
showDelete={index === chat.messages.length - 2}
|
2023-08-21 15:28:19 +08:00
|
|
|
deleteHash={messageHash}
|
|
|
|
avatarType={messageType}
|
|
|
|
copyMessage={messageText}
|
|
|
|
messageContexts={contexts} />
|
2023-08-18 00:24:10 +08:00
|
|
|
<Container
|
|
|
|
key={`message-container-${index}`}
|
|
|
|
sx={{
|
|
|
|
margin: 0,
|
|
|
|
padding: 0,
|
|
|
|
width: width,
|
|
|
|
pre: {
|
|
|
|
whiteSpace: 'break-spaces'
|
|
|
|
},
|
|
|
|
}}>
|
|
|
|
<MessageContext key={`message-context-${index}`} contexts={contexts} />
|
2023-08-21 14:07:11 +08:00
|
|
|
<MessageBody key={`message-codeblock-${index}`} messageType={messageType} messageText={messageText} />
|
2023-08-18 00:24:10 +08:00
|
|
|
</Container >
|
|
|
|
{index !== chat.messages.length - 1 && <Divider my={3} key={`message-divider-${index}`} />}
|
|
|
|
</Stack >;
|
|
|
|
})}
|
|
|
|
</>);
|
|
|
|
});
|
2023-06-05 19:27:25 +08:00
|
|
|
|
2023-08-21 13:53:32 +08:00
|
|
|
export default MessageList;
|