import { useState } from "react"; import { Badge } from "@/components/ui/badge"; import { MdVerifiedUser } from "react-icons/md"; import { IoMdStar } from "react-icons/io"; import { FaArrowRight, FaPaperPlane } from "react-icons/fa"; import { IoChatboxEllipsesOutline } from "react-icons/io5"; import { useSelector } from "react-redux"; import { extractYear, t } from "@/utils"; import CustomLink from "@/components/Common/CustomLink"; import { BiPhoneCall } from "react-icons/bi"; import { itemOfferApi } from "@/utils/api"; import { toast } from "sonner"; import { userSignUpData } from "@/redux/reducer/authSlice"; import { Gift } from "lucide-react"; import MakeOfferModal from "./MakeOfferModal"; import { setIsLoginOpen } from "@/redux/reducer/globalStateSlice"; import ApplyJobModal from "./ApplyJobModal"; import CustomImage from "@/components/Common/CustomImage"; import Link from "next/link"; import { useNavigate } from "@/components/Common/useNavigate"; const SellerDetailCard = ({ productDetails, setProductDetails }) => { const { navigate } = useNavigate(); const userData = productDetails && productDetails?.user; const memberSinceYear = productDetails?.created_at ? extractYear(productDetails.created_at) : ""; const [IsStartingChat, setIsStartingChat] = useState(false); const loggedInUser = useSelector(userSignUpData); const loggedInUserId = loggedInUser?.id; const [IsOfferModalOpen, setIsOfferModalOpen] = useState(false); const [showApplyModal, setShowApplyModal] = useState(false); const isAllowedToMakeOffer = productDetails?.price > 0 && !productDetails?.is_already_offered && Number(productDetails?.category?.is_job_category) === 0 && Number(productDetails?.category?.price_optional) === 0; const isJobCategory = Number(productDetails?.category?.is_job_category) === 1; const isApplied = productDetails?.is_already_job_applied; const item_id = productDetails?.id; const offerData = { itemPrice: productDetails?.price, itemId: productDetails?.id, }; const handleChat = async () => { if (!loggedInUserId) { setIsLoginOpen(true); return; } try { setIsStartingChat(true); const response = await itemOfferApi.offer({ item_id: offerData.itemId, }); const { data } = response.data; navigate("/chat?activeTab=buying&chatid=" + data?.id); } catch (error) { toast.error(t("unableToStartChat")); console.log(error); } finally { setIsStartingChat(false); } }; const handleMakeOffer = () => { if (!loggedInUserId) { setIsLoginOpen(true); return; } setIsOfferModalOpen(true); }; const handleApplyJob = () => { if (!loggedInUserId) { setIsLoginOpen(true); return; } setShowApplyModal(true); }; return ( <>
{t("memberSince")}: {memberSinceYear}
)}{Number(productDetails?.user?.average_rating).toFixed(2)}
{" "} |{" "}{productDetails?.user?.reviews_count}
{" "} {t("ratings")}