import { formatDateMonthYear, t } from "@/utils/index"; import { FaBriefcase, FaRegCalendarCheck, FaRegHeart } from "react-icons/fa"; import { IoEyeOutline } from "react-icons/io5"; import { toast } from "sonner"; import { useSelector } from "react-redux"; import { deleteItemApi } from "@/utils/api"; import CustomLink from "@/components/Common/CustomLink"; import { getCompanyName } from "@/redux/reducer/settingSlice"; import ShareDropdown from "@/components/Common/ShareDropdown"; import { useState } from "react"; import JobApplicationModal from "./JobApplicationModal"; import ReusableAlertDialog from "@/components/Common/ReusableAlertDialog"; import { useNavigate } from "@/components/Common/useNavigate"; const MyAdsListingDetailCard = ({ productDetails }) => { const { navigate } = useNavigate(); const CompanyName = useSelector(getCompanyName); const [IsDeleteAccount, setIsDeleteAccount] = useState(false); const [IsDeletingAccount, setIsDeletingAccount] = useState(false); const [IsShowJobApplications, setIsShowJobApplications] = useState(false); const productName = productDetails?.translated_item?.name || productDetails?.name; // share variables const currentUrl = `${process.env.NEXT_PUBLIC_WEB_URL}/ad-details/${productDetails?.slug}`; const FbTitle = productName + " | " + CompanyName; const headline = `🚀 Discover the perfect deal! Explore "${productName}" from ${CompanyName} and grab it before it's gone. Shop now at`; const isEditable = productDetails?.status && !["permanent rejected", "inactive", "sold out", "expired"].includes( productDetails.status ); // job application variables const isJobCategory = Number(productDetails?.category?.is_job_category) === 1; const isShowReceivedJobApplications = isJobCategory && (productDetails?.status === "approved" || productDetails?.status === "featured" || productDetails?.status === "sold out"); const price = isJobCategory ? productDetails?.formatted_salary_range : productDetails?.formatted_price; const deleteAd = async () => { try { setIsDeletingAccount(true); const res = await deleteItemApi.deleteItem({ item_id: productDetails?.id, }); if (res?.data?.error === false) { toast.success(t("adDeleted")); navigate("/my-ads"); } else { toast.error(res?.data?.message); } } catch (error) { console.log(error); } finally { setIsDeletingAccount(false); } }; return ( <>

{productName}

{productDetails?.status === "approved" && ( )}

{price}

{t("adId")} #{productDetails?.id}

{t("postedOn")}: {formatDateMonthYear(productDetails?.created_at)}
{t("views")}: {productDetails?.clicks}
{t("favorites")}: {productDetails?.total_likes}
{isEditable && ( {t("edit")} )} {isShowReceivedJobApplications && ( )}
setIsDeleteAccount(false)} onConfirm={deleteAd} title={t("areYouSure")} description={t("youWantToDeleteThisAd")} cancelText={t("cancel")} confirmText={t("yes")} confirmDisabled={IsDeletingAccount} /> ); }; export default MyAdsListingDetailCard;