import { useState } from "react"; import FlutterwaveLogo from "../../../public/assets/flutterwave.png"; import { FaAngleRight } from "react-icons/fa"; import { createPaymentIntentApi } from "@/utils/api"; import { toast } from "sonner"; import { t } from "@/utils"; import CustomImage from "@/components/Common/CustomImage"; import { Loader2 } from "lucide-react"; const FlutterwavePayment = ({ selectedPackage }) => { const [isLoading, setIsLoading] = useState(false); const handleFlutterwavePayment = async () => { setIsLoading(true); try { const res = await createPaymentIntentApi.createIntent({ package_id: selectedPackage.id, payment_method: "FlutterWave", }); if (res.data.error) { toast.error(res.data.message); return; } const payment_gateway_response = res?.data?.data?.payment_intent?.payment_gateway_response?.data?.link; if (payment_gateway_response) { const popupWidth = 600; const popupHeight = 700; const popupLeft = window.innerWidth / 2 - popupWidth / 2; const popupTop = window.innerHeight / 2 - popupHeight / 2; window.open( payment_gateway_response, "paymentWindow", `width=${popupWidth},height=${popupHeight},top=${popupTop},left=${popupLeft}` ); } else { throw new Error("Unable to retrieve payment gateway response."); } } catch (error) { console.error("Error during Flutterwave payment", error); toast.error(t("errorOccurred")); } finally { setIsLoading(false); } }; return (