import { h } from 'preact'; import PropTypes from 'prop-types'; import { adjustTimestamp } from './util'; import ErrorMessage from './messages/errorMessage'; const Message = ({ currentUserId, id, user, userID, message, color, type, editedAt, timestamp, profileImageUrl, onContentTrigger, onDeleteMessageTrigger, onEditMessageTrigger, }) => { const spanStyle = { color }; if (type === 'error') { return ; } const messageArea = ( ); return (
{`${user}
{user} {editedAt ? ( {`${adjustTimestamp(editedAt)}`} (edited) ) : ( ' ' )} {timestamp && !editedAt ? ( {`${adjustTimestamp(timestamp)}`} ) : ( ' ' )}
{userID === currentUserId ? (
{ if (e.keyCode === 13) onDeleteMessageTrigger(); }} > Delete { if (e.keyCode === 13) onEditMessageTrigger(); }} > Edit
) : ( ' ' )}
{messageArea}
); }; Message.propTypes = { currentUserId: PropTypes.number.isRequired, id: PropTypes.number.isRequired, user: PropTypes.string.isRequired, userID: PropTypes.number.isRequired, color: PropTypes.string.isRequired, message: PropTypes.string.isRequired, type: PropTypes.string, timestamp: PropTypes.string, editedAt: PropTypes.number.isRequired, profileImageUrl: PropTypes.string, onContentTrigger: PropTypes.func.isRequired, onDeleteMessageTrigger: PropTypes.func.isRequired, onEditMessageTrigger: PropTypes.func.isRequired, }; Message.defaultProps = { type: 'normalMessage', timestamp: null, profileImageUrl: '', }; export default Message;