import { useMemo, useState } from "react"; import usersService from "../../services/UsersService"; import { useDispatch } from "react-redux"; import { tableReload } from "../../store/TableReloads"; const CouponPopup = ({ popUpHandler, data }) => { const [loader, setLoader] = useState(false); const apiCall = useMemo(() => new usersService(), []); const [statusMsg, setStatusMsg] = useState({ success: "", error: "", }); const dispatch = useDispatch(); const redeemCouponHandler = async () => { setLoader(true); try { const { code, coupon_id } = data; const reqData = { code_id: Number(coupon_id), code }; const res = await apiCall.getCouponRedeem(reqData); if (res.data?.internal_return < 0) setStatusMsg({ error: "An error occurred" }); else setStatusMsg({ success: res.data?.status_text }); // dispatch(tableReload({ type: "COUPONTABLE" })); dispatch(tableReload({ type: "WALLETTABLE" })); setTimeout(() => { popUpHandler(); setLoader(false); }, 10000); } catch (error) { setLoader(false); if (error?.status !== 200) setStatusMsg({ error: { status: true, msg: error?.statusText !== "" ? error?.statusText : "An error occurred", }, }); throw new Error(error); } finally { setStatusMsg({ success: "", error: "", }); } }; return (

Redeem Coupon

{/* Coupon */}
{data?.code}
{/* Amount */}
{data?.thePrice}
{statusMsg.success && (

{statusMsg.success}

)} {statusMsg.error && (

{statusMsg.error}

)}
); }; export default CouponPopup; const CloseIcon = () => ( );