import CustomImage from "@/components/Common/CustomImage"; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { formatPriceAbbreviated, t } from "@/utils"; import { getPackageApi } from "@/utils/api"; import { useSelector } from "react-redux"; import { getCurrentLangCode } from "@/redux/reducer/languageSlice"; import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { Skeleton } from "@/components/ui/skeleton"; import NoData from "@/components/EmptyStates/NoData"; import { cn } from "@/lib/utils"; const ChoosePackageModal = ({ IsChoosePackage, setIsChoosePackage, selectedPackageId, setSelectedPackageId, ItemPackages, setItemPackages, isRenewingAd, handleRenew, }) => { const [IsLoading, setIsLoading] = useState(false); const currentLanguageCode = useSelector(getCurrentLangCode); useEffect(() => { getItemsPackageData(); }, [currentLanguageCode]); const getItemsPackageData = async () => { try { setIsLoading(true); const res = await getPackageApi.getPackage({ type: "item_listing" }); const { data } = res?.data; setItemPackages(data || []); } catch (error) { console.log(error); } finally { setIsLoading(false); } }; return ( e.preventDefault()}> {t("selectPackage")}
{IsLoading ? ( Array.from({ length: 3 }).map((_, index) => ( )) ) : ItemPackages.length > 0 ? ( ItemPackages.map((item) => (
setSelectedPackageId(item?.id)} >

{item.translated_name} {item?.is_active && t("activePlan")}

{formatPriceAbbreviated(item.final_price)} {item.item_limit === "unlimited" ? t("unlimited") : item.item_limit} {" "} {t("ads")}  |   {item.duration === "unlimited" ? t("unlimited") : item.duration} {" "} {t("days")}
)) ) : ( )}
{ItemPackages.length > 0 && ( )}
); }; export default ChoosePackageModal; const PackageCardSkeleton = () => { return (
{/* Image Skeleton */}
{/* Title Skeleton */} {/* Price + Meta Skeleton */}
); };