SearchChatModal.jsx 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { Button, Divider } from "@mui/material"
  2. import { SearchChatHeader,
  3. SearchChatInput,
  4. SearchChatInputWrapper,
  5. SearchChatListWrapper,
  6. SearchChatWrap } from "./SearchChatModal.style";
  7. import SearchIcon from "../SearchUserInput/search_icon.svg";
  8. import { useEffect, useState } from "react";
  9. import { connect } from "react-redux";
  10. import { SearchChatListItem } from "../SearchChatListItem/SearchChatListItem";
  11. import SimpleBar from 'simplebar-react';
  12. import 'simplebar/dist/simplebar.min.css';
  13. import { actionAddDraftMessage } from "../../actions/actionsForChats";
  14. const SearchChatModal = ({handleClose, chats, forwardedMessage, addForwardedMessageToChat}) => {
  15. const [value, setValue] = useState('');
  16. const [chatsArr, setChatsArr] = useState([]);
  17. useEffect(() => {
  18. setChatsArr(Object.values(chats).filter((chat) => chat?.title?.toLowerCase().includes(value)));
  19. }, [value]);
  20. return (
  21. <SearchChatWrap>
  22. <SearchChatHeader>Choose chat</SearchChatHeader>
  23. <SearchChatInputWrapper>
  24. <img src={SearchIcon}/>
  25. <SearchChatInput placeholder='Search' value={value} onChange={(e) => setValue(e.target.value)}/>
  26. </SearchChatInputWrapper>
  27. <Divider sx={{mb: '8px'}}/>
  28. <SearchChatListWrapper>
  29. <SimpleBar style={{ maxHeight: '100%'}}>
  30. {chatsArr.map((chat) => <SearchChatListItem key={chat?._id} handleClose={handleClose} chat={chat} addForwardedMessageToChat={addForwardedMessageToChat} forwardedMessage={forwardedMessage}/>)}
  31. </SimpleBar>
  32. </SearchChatListWrapper>
  33. <Divider/>
  34. <div style={{display: "flex",
  35. padding: "10px 15px",
  36. justifyContent: "right",
  37. alignItems: "center"}}>
  38. <Button variant="text" onClick={handleClose} >Cancel</Button>
  39. </div>
  40. </SearchChatWrap>
  41. )
  42. }
  43. export default connect(state => ({chats: state?.chats || {}, forwardedMessage: state?.modal?.draft?.forwardedMessage}), {addForwardedMessageToChat: actionAddDraftMessage})(SearchChatModal)