SearchResults.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { connect } from 'react-redux';
  2. import { useEffect } from 'react';
  3. import SearchGoodResultItem from './SearchGoodResultItem';
  4. import { HiOutlineEmojiSad } from 'react-icons/hi';
  5. import SearchCategoryResultItem from './SearchCategoryResultItem';
  6. import { Divider, Paper, Stack, Typography } from '@mui/material';
  7. import { Box } from '@mui/system';
  8. import { Error } from 'components/Error';
  9. export const SearchResults = ({ items, onItemClick, itemLink = '' }) => {
  10. return (
  11. <Paper className="SearchResults">
  12. <Stack>
  13. {!!items?.length ? (
  14. itemLink.match(/.+(good).+/) ? (
  15. items.map((good) => (
  16. <Box>
  17. <SearchGoodResultItem
  18. link={itemLink}
  19. good={good}
  20. key={good._id}
  21. onClick={() => onItemClick && onItemClick()}
  22. />
  23. <Divider sx={{ my: 1 }} />
  24. </Box>
  25. ))
  26. ) : itemLink.match(/.+(category || categories).+/) ? (
  27. items.map((cat) => (
  28. <Box>
  29. <SearchCategoryResultItem
  30. link={itemLink}
  31. category={cat}
  32. key={cat._id}
  33. onClick={() => onItemClick && onItemClick()}
  34. />
  35. <Divider sx={{ my: 1 }} />
  36. </Box>
  37. ))
  38. ) : (
  39. []
  40. )
  41. ) : (
  42. <Error>Ничего не найдено</Error>
  43. )}
  44. </Stack>
  45. </Paper>
  46. );
  47. };
  48. const CSearchResults = connect((state) => ({ items: state.promise.goodsFind?.payload || [] }))(SearchResults);
  49. export default CSearchResults;