chatsList.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { Link } from "react-router-dom"
  2. import ReactTimeAgo from 'react-time-ago'
  3. import TimeAgo from 'javascript-time-ago'
  4. import ru from 'javascript-time-ago/locale/ru.json'
  5. import React from 'react';
  6. import { connect } from "react-redux";
  7. TimeAgo.addLocale(ru)
  8. const ChatItem = ({ id, chat }) => {
  9. return (
  10. <li className="aside-chat" >
  11. <Link to={`/chat_id.${id}`}>
  12. {chat.avatar && <img src={chat.avatar.url} alt="chat-avatar" />}
  13. <div className="aside-chat-info">
  14. <h5>{chat.title}</h5>
  15. <span>Последнее обновление: </span>
  16. {chat.lastModified && <ReactTimeAgo date={+(chat.lastModified)} locale="ru" timeStyle="round" />}
  17. </div>
  18. </Link>
  19. </li>
  20. )
  21. }
  22. const ChatsList = ({ chats }) => {
  23. return (
  24. <>
  25. <ul className="chat-list">
  26. <li className="aside-chat-btn">
  27. <Link to="/chat">Новый чат</Link>
  28. </li>
  29. {Object.entries(chats).map(([id, chat]) => <ChatItem key={id} id={id} chat={chat} />)}
  30. </ul>
  31. </>
  32. )
  33. }
  34. const ConnectChatsList = connect(state => ({ chats: state.chat }))(ChatsList)
  35. export default ConnectChatsList