import { Badge, Comment, Image, List } from 'antd'; import _ from 'lodash'; import React, { useEffect } from 'react'; import Emoji from 'react-emoji-render'; import styles from '../style.module.css'; import dayjs from '../utils/dayjs'; import CustomizedAvatar from './CustomizedAvatar'; import Markdown from './Markdown'; import UserInfoPop from './UserInfoPop'; type PropType = { user_id: string; chat: any; members: any[]; }; const MessageList: React.FC = ({ user_id, chat, members }) => { const userProfile = (item) => { return members.filter((v) => v.user_id === item.from_user_id)[0]; }; const chatMessage = (messageType, v) => { switch (messageType) { case 'mention': return ( u.user_id === v.user_id)[0]}>
{v.text} 
); case 'text': return ; case 'emoicon': return ; case 'attachment': return (
); default: return null; } }; useEffect(() => { const scrollDiv = document.getElementById('chatlist'); const scrollToBottom = () => { if (scrollDiv) { scrollDiv.scrollIntoView({ block: 'end' }); } }; scrollToBottom(); }, [chat.room]); return (
(
  • {item.from_user_name}} avatar={ item.from_user_avatar && ( {_.includes(chat.onlineUserIDs, item.from_user_id) && } ) } content={
    {item.message.map((v, index) => (
    {chatMessage(v.type, v)}
    ))}
    } datetime={item.created_at && dayjs(item.created_at).fromNow()} />
  • )} />
    ); }; export default MessageList;