"use client"; import NavBarDownCart from "@comp/Carts/component/NavBarDownCart/page"; import Navbar from "@comp/Navbar/page"; import PersianNumber from "plugins/PersianNumber"; import { useContext, useEffect, useState } from "react"; import AppContext from "@ctx/AppContext"; import ap from "@img/ap.png"; import zarin from "@img/zarin.png"; import Image from "next/image"; import { useRouter } from "next/navigation"; import Chapar from "plugins/Chapar"; import BottomSheetDiscount from "plugins/bottomSheet/BottomSheetDiscount"; import { toast } from "react-toastify"; const CheckoutData = () => { const CTX = useContext(AppContext); const [shippingData, setShippingData] = useState([]); const [shippingId, setShippingID] = useState(null); const [addressData, setAddressData] = useState([]); const [addressId, setAddressId] = useState(null); const [permissionGoPay, setPermissionGoPay] = useState(false); const router = useRouter(); const checkOutData = CTX.state.checkOutData; const body = { addressId: addressData[addressId]?.id, orderId: checkOutData?.id, shippingId: shippingData[shippingId]?.id, }; console.log(body); const GetShippingData = async () => { try { const data = await Chapar.get( `${process.env.NEXT_PUBLIC_API_URL}/warehouse/shipping?page=0` ); setShippingData(data); } catch ({ error, status }) { toast.error(`${error?.response?.data?.message}`, { position: "bottom-right", closeOnClick: true, }); } }; const handleShippingID = async (index) => { if (addressId !== null) { setShippingID(index); try { const data = await Chapar.post( `${process.env.NEXT_PUBLIC_API_URL}/order/bag/shipping/${checkOutData?.id}`, JSON.stringify({ addressId: addressData[addressId]?.id, orderId: checkOutData?.id, shippingId: shippingData[index]?.id, }), { headers: { Authorization: localStorage.getItem("token"), }, } ); CTX.setCheckOutData(data); setPermissionGoPay(true); console.log(data); } catch ({ error, status }) { toast.error(`${error?.response?.data?.message}`, { position: "bottom-right", closeOnClick: true, }); } } else { toast.error(`ابتدا آدرس را انتحاب کنید`, { position: "bottom-right", closeOnClick: true, }); } }; const handleGoPayment = async () => { const token = localStorage.getItem("token"); try { const data = await Chapar.post( `${process.env.NEXT_PUBLIC_API_URL}/order/bag/payment/${checkOutData?.id}?paymentMethod=1`, { headers: { Authorization: token, }, } ); router.push(data?.paymentUrl); } catch ({ error, status }) { toast.error(`${error?.response?.data?.message}`, { position: "bottom-right", closeOnClick: true, }); } }; useEffect(() => { if (shippingData.length <= 0) { GetShippingData(); } if (CTX.state.addressData <= 0) { CTX.fetchAddressUser(); } }, [checkOutData]); useEffect(() => { setAddressData(CTX.state.addressData); }, [CTX.state.addressData]); useEffect(() => { if (CTX.state.checkOutData.length <= 0) { router.push("/cart"); } setPermissionGoPay(false); }, []); return ( <>
آدس ها
افزودن آدرس جدید
{e.address}
زمان و نحوه ارسال
سریع ترین زمان ارسال
{" "}
حداکثر
روش پرداخت
زرین پال
آسان پرداخت
کد تخفیف خود را وارد کنید
کد تخفیف ثبت شد{" "}
حساب نهایی
{/*مشاهده اقلام
قیمت
تخفیف محصول
هزینه بسته بندی
هزینه ارسال
قابل پرداخت