import React, { Component } from 'react'; import { compose } from 'redux'; import PropTypes from 'prop-types'; import marked from 'marked'; import { connect } from 'react-redux'; import scrollToBottom from './scrollToBottom'; const linkRenderer = new marked.Renderer(); linkRenderer.link = (href, title, text) => { title = title ? title : href; text = text ? text : href; return (`${ text }`); }; class MessageList extends Component { getTimeString(time) { return `${(time.getHours() < 10 ? '0' : '')}${time.getHours()}:${(time.getMinutes() < 10 ? '0' : '')}${time.getMinutes()}`; } render() { const { chatmessages } = this.props; return (
{ chatmessages.length > 0 ? chatmessages.map((message, i) => { const messageTime = new Date(message.time); const picture = (message.sender === 'response' ? message.picture : this.props.myPicture) || 'resources/images/avatar-empty.jpeg'; return (
{message.name} - {this.getTimeString(messageTime)}
); }) :

No one has said anything yet...

}
); } } MessageList.propTypes = { chatmessages : PropTypes.arrayOf(PropTypes.object).isRequired, myPicture : PropTypes.string }; const mapStateToProps = (state) => { return { chatmessages : state.chatmessages, myPicture : state.me.picture }; }; const MessageListContainer = compose( connect(mapStateToProps), scrollToBottom() )(MessageList); export default MessageListContainer;