import { t } from "@/utils"; import adIcon from "@/public/assets/ad_icon.svg"; import { Button } from "@/components/ui/button"; import ReusableAlertDialog from "@/components/Common/ReusableAlertDialog"; import { createFeaturedItemApi, getLimitsApi } from "@/utils/api"; import { useState } from "react"; import { toast } from "sonner"; import CustomImage from "@/components/Common/CustomImage"; import { useNavigate } from "@/components/Common/useNavigate"; const MakeFeaturedAd = ({ item_id, setProductDetails }) => { const [isGettingLimits, setIsGettingLimits] = useState(false); const [isModalOpen, setIsModalOpen] = useState(false); const [modalConfig, setModalConfig] = useState({}); const [isConfirmLoading, setIsConfirmLoading] = useState(false); const { navigate } = useNavigate(); const handleCreateFeaturedAd = async () => { try { setIsGettingLimits(true); const res = await getLimitsApi.getLimits({ package_type: "advertisement", }); if (res?.data?.error === false) { // ✅ Limit granted → show confirmation modal setModalConfig({ title: t("createFeaturedAd"), description: t("youWantToCreateFeaturedAd"), cancelText: t("cancel"), confirmText: t("yes"), onConfirm: createFeaturedAd, }); } else { // ❌ No package → show subscribe modal setModalConfig({ title: t("noPackage"), description: t("pleaseSubscribes"), cancelText: t("cancel"), confirmText: t("subscribe"), onConfirm: () => navigate("/user-subscription"), }); } setIsModalOpen(true); } catch (error) { console.error(error); } finally { setIsGettingLimits(false); } }; const createFeaturedAd = async () => { try { setIsConfirmLoading(true); const res = await createFeaturedItemApi.createFeaturedItem({ item_id, positions: "home_screen", }); if (res?.data?.error === false) { toast.success(t("featuredAdCreated")); setProductDetails((prev) => ({ ...prev, is_feature: true, })); setIsModalOpen(false); } else { toast.error(res?.data?.message); } } catch (error) { console.error(error); } finally { setIsConfirmLoading(false); } }; return ( <>

{t("featureAdPrompt")}

setIsModalOpen(false)} onConfirm={modalConfig.onConfirm} title={modalConfig.title} description={modalConfig.description} cancelText={modalConfig.cancelText} confirmText={modalConfig.confirmText} confirmDisabled={isConfirmLoading} /> ); }; export default MakeFeaturedAd;