import React from "react"; import PropTypes from "prop-types"; import { InfoIcon, MessageContent, MessageDate, MessageText, RequestExchangeCardContainer, } from "./RequestExchangeCard.styled"; import { getMessageDate } from "../../../util/helpers/dateHelpers"; import { useSelector } from "react-redux"; import { selectExchange, selectRequester, } from "../../../store/selectors/exchangeSelector"; import { useMemo } from "react"; import { selectUserId } from "../../../store/selectors/loginSelectors"; import requesterStatus from "../../../constants/requesterStatus"; import { useTranslation } from "react-i18next"; import RequestExchangeMessage from "./RequestExchangeMessage/RequestExchangeMessage"; const RequestExchangeCard = (props) => { const dateString = getMessageDate(new Date(props?.message?._created)); const { t } = useTranslation(); const userId = useSelector(selectUserId); const requester = useSelector(selectRequester); const exchange = useSelector(selectExchange); const amIBuyer = useMemo( () => exchange?.buyer?.userId === userId, [exchange, userId] ); console.log("requester", requester); console.log("exchange: ", exchange); const haveIAccepted = useMemo( () => (amIBuyer ? exchange?.buyer?.accepted : exchange?.seller?.accepted), [amIBuyer, exchange] ); console.log(haveIAccepted) const interlucatorUserId = useMemo( () => (amIBuyer ? exchange?.seller?.userId : exchange?.buyer?.userId), [exchange, amIBuyer] ); const message = useMemo(() => { if (requester === requesterStatus.ME) { if (props.isMyMessage) { return ( {t("messages.requestSent")} ); } else { return ( {t("messages.requestAccepted")} ); } } else if (requester === requesterStatus.INTERLUCATOR) { return ( ); } return ""; }, [requester, t, haveIAccepted, interlucatorUserId, userId, exchange]); return ( {message} {dateString} ); }; RequestExchangeCard.propTypes = { isMyMessage: PropTypes.bool, message: PropTypes.any, chatId: PropTypes.string, }; export default RequestExchangeCard;