import { h } from 'preact'; import PropTypes from 'prop-types'; import { adjustTimestamp } from './util'; import ErrorMessage from './messages/errorMessage'; const Message = ({ user, message, color, type, messageColor, timestamp, profileImageUrl, }) => { const spanStyle = { color }; const messageStyle = { color: messageColor }; if (type === 'error') { return ; } const re = new RegExp(`@${window.currentUser.username}`); const match = re.exec(message); let messageArea; if (match) { messageArea = ( {message.substr(0, match.index)} {`@${window.currentUser.username}`} {message.substr(match.index + match[0].length)} ); } else { messageArea = ( {message} ); } return (
{`${user} {user} : {messageArea}
{timestamp ? ( {`${adjustTimestamp(timestamp)}`} ) : ( )}
); }; Message.propTypes = { user: PropTypes.string.isRequired, color: PropTypes.string.isRequired, message: PropTypes.string.isRequired, messageColor: PropTypes.string, type: PropTypes.string, timestamp: PropTypes.string, profileImageUrl: PropTypes.string, }; Message.defaultProps = { type: 'normalMessage', timestamp: null, profileImageUrl: '', messageColor: 'black', }; export default Message;