import React, { Component } from 'react'; import { Row, Col, List, Avatar, Space, Pagination } from 'antd'; import { stores_Context } from '../config'; import { observer } from 'mobx-react'; import 'moment/locale/zh-cn'; class WhatsApp_session extends Component { static contextType = stores_Context; constructor(props) { super(props); } componentDidMount() { console.info('Wechat_session.componentDidMount'); const { whatsAppStore } = this.context; whatsAppStore.fetchWechatUserList(); } handleUserClick(user) { const { whatsAppStore } = this.context; whatsAppStore.fetchContactList(user); } handleContactClick(contact) { const { whatsAppStore } = this.context; whatsAppStore.fetchChatMsgList(contact, 0, 20); } handlePageChanged(page, pageSize) { const { whatsAppStore } = this.context; whatsAppStore.fetchChatMsgList(whatsAppStore.selectedContact, page, pageSize); } renderMsgItem(chatMsg) { const msgDate = new Date(chatMsg.msgtime); const msgDateText = msgDate.toLocaleDateString() + ' ' + msgDate.toLocaleTimeString(); return ( } title={chatMsg.from_name} description={msgDateText} /> {this.renderMsgContent(chatMsg)} ); } renderMsgContent(chatMsg) { if (chatMsg.msgtype === 'file') { return {chatMsg.content.filename}; } else if (chatMsg.msgtype === 'image') { return {chatMsg.msgid}; } else if (chatMsg.msgtype === 'text') { return <>{chatMsg.content.text}; } else if (chatMsg.msgtype === 'link') { return {chatMsg.content.title}; } else { return <>未知消息[{chatMsg.msgtype}]; } } render() { const { whatsAppStore } = this.context; const userList = whatsAppStore.userList; const contactList = whatsAppStore.contactList; const chatMsgList = whatsAppStore.chatMsgList; const chatMsgPage = whatsAppStore.chatMsgPage; return ( <> ( { this.handleUserClick(user); }} > } title={user.username} /> )} /> ( { this.handleContactClick(contact); }} > } title={contact.username} /> )} /> this.renderMsgItem(chatMsg)} /> { this.handlePageChanged(page, pageSize); }} /> ); } } export default observer(WhatsApp_session);