ChatList.jsx 935 B

1234567891011121314151617181920212223242526272829303132
  1. import { List } from "@mui/material"
  2. import { useEffect, useState } from "react"
  3. import { connect } from "react-redux"
  4. import { history } from "../../App"
  5. import ChatListItem from '../ChatListItem/ChatListItem';
  6. import { ChatListWrapper } from "./ChatList.style"
  7. import SimpleBar from 'simplebar-react';
  8. import 'simplebar/dist/simplebar.min.css';
  9. const ChatList = ({chats}) => {
  10. const [, route, histId] = history.location.pathname.split('/');
  11. const [stateId, setStateId] = useState(histId);
  12. useEffect(() => {
  13. setStateId(histId)
  14. },[histId])
  15. return (
  16. <ChatListWrapper>
  17. <SimpleBar style={{ maxHeight: '100%'}}>
  18. <List sx={{p: '0'}}>
  19. {Object.values(chats).map((item, index) => <ChatListItem key={item._id} isActive={stateId === item._id} chat={item} handleSetId={setStateId} />)}
  20. </List>
  21. </SimpleBar>
  22. </ChatListWrapper>
  23. )
  24. }
  25. export default connect(state => ({chats: state.chats || []}))(ChatList);