import CustomLink from "@/components/Common/CustomLink"; import { BiHeart } from "react-icons/bi"; import { RxEyeOpen } from "react-icons/rx"; import { t } from "@/utils"; import CustomImage from "@/components/Common/CustomImage"; import GetMyAdStatus from "./GetMyAdStatus"; import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger, } from "@/components/ui/context-menu"; import { Checkbox } from "@/components/ui/checkbox"; import { RotateCcw, Trash2, CheckSquare } from "lucide-react"; const MyAdsCard = ({ data, isApprovedSort, isSelected = false, isSelectable = false, onSelectionToggle, onContextMenuAction, }) => { const isJobCategory = Number(data?.category?.is_job_category) === 1; const isAdminEdited = Number(data?.is_edited_by_admin) === 1; const translated_item = data?.translated_item; const isHidePrice = isJobCategory ? !data?.formatted_salary_range : !data?.formatted_price; const status = data?.status; const isExpired = status === "expired"; const price = isJobCategory ? data?.formatted_salary_range : data?.formatted_price; // Card content JSX to avoid duplication const cardContent = (
{/* Selection checkbox - only show in selection mode */} {isSelectable && (
)} {/* Main card content */} { if (isSelectable) { e.preventDefault(); onSelectionToggle(); } else { // For navigation, ensure the event propagates properly // Don't prevent default or stop propagation for normal clicks } }} >
{status && ( )} {isAdminEdited && (
{t("adminEdited")}
)}
{!isHidePrice && (

{translated_item?.name || data?.name}

)}
{isHidePrice ? (

{translated_item?.name || data?.name}

) : (

{price}

)}
{data?.clicks}
{data?.total_likes}
); return ( {cardContent} onContextMenuAction("select")} className="flex items-center gap-2 cursor-pointer" > {isSelected ? "Deselect" : "Select"} onContextMenuAction("renew")} className="flex items-center gap-2 cursor-pointer" > {t("renew")} onContextMenuAction("delete")} className="flex items-center gap-2 text-destructive focus:text-destructive cursor-pointer" > {t("remove")} ); }; export default MyAdsCard;