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