Search_Users.jsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { connect } from 'react-redux'
  2. import { Input, Popover } from 'antd'
  3. import { actionSearchUser } from '../actions/query/searchUserQuery'
  4. import { UserOutlined } from '@ant-design/icons'
  5. import { actionFullProfilePageUserTypeSaga } from '../actions/typeSaga/userTypesSaga'
  6. import LinkToUser from './LinkToUser'
  7. export const ResultUserFind = ({ userFind = [], handleCancel }) => {
  8. return (
  9. <div className="ResultUserFind">
  10. {userFind?.map(({ _id, login, avatar }) => (
  11. <LinkToUser
  12. _id={_id}
  13. login={login}
  14. avatar={avatar}
  15. size={40}
  16. padding={'0px'}
  17. onClick={handleCancel}
  18. key={_id}
  19. />
  20. ))}
  21. </div>
  22. )
  23. }
  24. const SearchUser = ({ my_Id, onSearch, searchUser, onPageData }) => {
  25. const onSearchUser = (value) => onSearch(value)
  26. const { Search } = Input
  27. return (
  28. <>
  29. <Popover
  30. placement="bottom"
  31. destroyTooltipOnHide={true}
  32. size="large"
  33. content={
  34. <ResultUserFind
  35. my_Id={my_Id}
  36. size={'20px'}
  37. onPageData={onPageData}
  38. userFind={searchUser}
  39. />
  40. }
  41. >
  42. <Search
  43. placeholder="Enter search user"
  44. allowClear
  45. prefix={<UserOutlined />}
  46. enterButton="Search"
  47. size="large"
  48. onSearch={onSearchUser}
  49. />
  50. </Popover>
  51. </>
  52. )
  53. }
  54. export const CSearch = connect(
  55. (state) => ({
  56. aboutUser: state.userData?.aboutUser,
  57. searchUser: state.promise?.searchUser?.payload,
  58. my_Id: state.auth?.payload?.sub?.id || '',
  59. }),
  60. {
  61. onSearch: actionSearchUser,
  62. onPageData: actionFullProfilePageUserTypeSaga,
  63. },
  64. )(SearchUser)