mirror of https://github.com/msgbyte/tailchat
refactor: 消息列表
parent
f5cd580175
commit
73fdb032a5
@ -0,0 +1,20 @@
|
||||
import React from 'react';
|
||||
import { ChatMessage, useCachedUserInfo } from 'pawchat-shared';
|
||||
|
||||
interface ChatMessageItemProps {
|
||||
showAvatar: boolean;
|
||||
payload: ChatMessage;
|
||||
}
|
||||
export const ChatMessageItem: React.FC<ChatMessageItemProps> = React.memo(
|
||||
(props) => {
|
||||
const { showAvatar, payload } = props;
|
||||
const userInfo = useCachedUserInfo(payload.author ?? '');
|
||||
|
||||
return (
|
||||
<div>
|
||||
{userInfo.nickname}: {payload.content}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
);
|
||||
ChatMessageItem.displayName = 'ChatMessageItem';
|
@ -0,0 +1,23 @@
|
||||
import React from 'react';
|
||||
import type { ChatMessage } from 'pawchat-shared';
|
||||
import { ChatMessageItem } from './Item';
|
||||
|
||||
interface ChatMessageListProps {
|
||||
messages: ChatMessage[];
|
||||
}
|
||||
export const ChatMessageList: React.FC<ChatMessageListProps> = React.memo(
|
||||
(props) => {
|
||||
return (
|
||||
<div>
|
||||
{props.messages.map((message) => (
|
||||
<ChatMessageItem
|
||||
key={message._id}
|
||||
showAvatar={true}
|
||||
payload={message}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
);
|
||||
ChatMessageList.displayName = 'ChatMessageList';
|
Loading…
Reference in New Issue