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

UserReviewsCard.js 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import React, { useMemo, useState } from "react";
  2. import PropTypes from "prop-types";
  3. import { reviewEnum } from "../../../enums/reviewEnum";
  4. import UserReviewsSingleCard from "./UserReviewsSingleCard/UserReviewsSingleCard";
  5. import DeleteReview from "../../Modals/DeleteReview/DeleteReview";
  6. const UserReviewsCard = (props) => {
  7. const [removeModalOpened, setRemoveModalOpened] = useState();
  8. const handleRemove = () => {
  9. setRemoveModalOpened(true);
  10. };
  11. const review = useMemo(() => {
  12. if (props.givingReview) {
  13. return {
  14. ...props.review,
  15. };
  16. }
  17. let isSuccessfulSwap = reviewEnum.YES.mainText.toUpperCase();
  18. if (
  19. props.review.succeeded === reviewEnum.NO.backendText ||
  20. props.review.isSuccessfulSwap === reviewEnum.NO.mainText
  21. )
  22. isSuccessfulSwap = reviewEnum.NO.mainText.toUpperCase();
  23. let isGoodCommunication = reviewEnum.YES.mainText.toUpperCase();
  24. if (
  25. props.review.communication === reviewEnum.NOT_BAD.backendText ||
  26. props.review.isCorrectCommunication === reviewEnum.NOT_BAD.mainText
  27. )
  28. isGoodCommunication = reviewEnum.NOT_BAD.mainText.toUpperCase();
  29. if (
  30. props.review.communication === reviewEnum.NO.backendTextSecond ||
  31. props.review.isCorrectCommunication === reviewEnum.NO.mainText
  32. )
  33. isGoodCommunication = reviewEnum.NO.mainText.toUpperCase();
  34. return {
  35. name: props.review.userWhoGaveReview.name,
  36. image: props.review.userWhoGaveReview.image,
  37. userId: props.review.userId,
  38. isGoodCommunication,
  39. isSuccessfulSwap,
  40. quote: props?.review?.message,
  41. offerName: props.review.offer.name,
  42. offerImage: props.review.offer.image,
  43. };
  44. }, [props.review]);
  45. console.log(review);
  46. return (
  47. <>
  48. <UserReviewsSingleCard
  49. review={review}
  50. showRemoveIcon={props.showRemoveIcon}
  51. handleRemove={handleRemove}
  52. />
  53. {removeModalOpened && (
  54. <DeleteReview
  55. review={review}
  56. setOpenedDeleteModal={setRemoveModalOpened}
  57. />
  58. )}
  59. </>
  60. );
  61. };
  62. UserReviewsCard.propTypes = {
  63. children: PropTypes.node,
  64. heading: PropTypes.string,
  65. isProfileReviews: PropTypes.bool,
  66. profileReviews: PropTypes.any,
  67. className: PropTypes.string,
  68. review: PropTypes.any,
  69. givingReview: PropTypes.bool,
  70. showRemoveIcon: PropTypes.bool,
  71. };
  72. UserReviewsCard.defaultProps = {
  73. isProfileReviews: false,
  74. profileReviews: [],
  75. };
  76. export default UserReviewsCard;