Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import React, { useEffect, useState } from "react";
  2. import { PostsImgSuit } from "./MyPosts.styled";
  3. // const dummyData2 = [
  4. // {
  5. // alt: "Remy Sharp",
  6. // src: "/static/images/avatar/1.jpg",
  7. // title: "Gitara",
  8. // text: (<React.Fragment><PostsImgSuit/> Player.rs</React.Fragment>)
  9. // },
  10. // {
  11. // alt: "Remy Sharp",
  12. // src: "/static/images/avatar/1.jpg",
  13. // title: "Gitara",
  14. // text: (<React.Fragment><PostsImgSuit/> Player.rs</React.Fragment>)
  15. // }
  16. // ]
  17. import HeaderPopover from "../HeaderPopover/HeaderPopover";
  18. import { useTranslation } from "react-i18next";
  19. import { useDispatch, useSelector } from "react-redux";
  20. import { selectMineOffers } from "../../../store/selectors/offersSelectors";
  21. import { fetchMineOffers } from "../../../store/actions/offers/offersActions";
  22. import { selectProfileName } from "../../../store/selectors/profileSelectors";
  23. import { useHistory } from "react-router-dom";
  24. import { MY_OFFERS_PAGE } from "../../../constants/pages";
  25. export const MyPosts = () => {
  26. const { t } = useTranslation();
  27. const dispatch = useDispatch();
  28. const mineOffers = useSelector(selectMineOffers);
  29. const name = useSelector(selectProfileName);
  30. const history = useHistory();
  31. const [arrayOfMineOffers, setArrayOfMineOffers] = useState([]);
  32. useEffect(() => {
  33. dispatch(fetchMineOffers());
  34. }, []);
  35. useEffect(() => {
  36. if (mineOffers?.length > 0) {
  37. if (mineOffers.length > 1) {
  38. setArrayOfMineOffers(
  39. [mineOffers[0], mineOffers[1]].map((item) => ({
  40. alt: "Photo",
  41. src: item.images[0],
  42. title: item.name,
  43. onClick: () => goToOffer(item._id),
  44. text: (
  45. <React.Fragment>
  46. <PostsImgSuit /> {name}
  47. </React.Fragment>
  48. ),
  49. }))
  50. );
  51. } else if (mineOffers.length > 0) {
  52. setArrayOfMineOffers(
  53. [mineOffers[0]].map((item) => ({
  54. alt: "Photo",
  55. src: item.images[0],
  56. title: item.name,
  57. onClick: () => goToOffer(item._id),
  58. text: (
  59. <React.Fragment>
  60. <PostsImgSuit /> {name}
  61. </React.Fragment>
  62. ),
  63. }))
  64. );
  65. } else {
  66. setArrayOfMineOffers([]);
  67. }
  68. }
  69. }, [mineOffers]);
  70. const goToOffer = (id) => {
  71. history.push(`/proizvodi/${id}`)
  72. }
  73. const goToMySwaps = () => {
  74. history.push(MY_OFFERS_PAGE);
  75. }
  76. return (
  77. <HeaderPopover
  78. title={t("header.myOffers")}
  79. items={arrayOfMineOffers}
  80. buttonText={t("header.checkEverything")}
  81. buttonOnClick={goToMySwaps}
  82. />
  83. );
  84. };