import { isEmpty, startCase } from "lodash"; import React, { useContext, useEffect, useState } from "react"; import AuthProvider from "../context/AuthContext"; import BetSlipContext from "../context/BetSlipContext"; import { apiGet } from "../Utils/apiFetch"; import apiPath from "../Utils/apiPath"; import { FancyListing, SportsBookListing } from "./BetsListing"; import OpenBetsDetails from "./OpenBetsDetails"; import helper from "../Utils/helpers"; import axios from "axios"; import ParlyFIltered from "./ParlyFIltered"; import obj from "../Utils/helpers"; function Openbets() { let { setOpenBetsToogle, openBetsToogle, openBetSelection, setLoader, user } = useContext(AuthProvider); let { messaageBox, refreshCurrentBet, setRefreshCurrentBets, isBetPlaced, setIsBetPlaced, setMessageBox, umMachedBetPlace, setUnMatchedBetPlace, } = useContext(BetSlipContext); const [parlayData, setParlayData] = useState([]); const [currentBets, setCurrentBets] = useState([]); const [filtered, setFiltered] = useState({}); const [data, setData] = useState({}); const [type, setType] = useState(""); const [betinfo, setBetInfo] = useState(false); const [sortbyTime, setSortbyTime] = useState(false); const getCurrentBets = async () => { if (!isEmpty(user)) { // Cache-bust so we always get fresh data (avoid 304 Not Modified / stale list) const nocache = { _: Date.now() }; const promiseOne = apiGet(apiPath.mobileCurrentBets, nocache); const promiseTwo = apiGet(apiPath.currentParlay, nocache); Promise.all([promiseOne, promiseTwo]).then((res) => { setCurrentBets(res[0]?.data?.results); setParlayData(res[1]?.data?.results); }); // if (status === 200) { // if (response_users.success) { // setCurrentBets(response_users.results); // setRefreshCurrentBets(false); // } // } } }; const getParlayData = async () => { if (!isEmpty(user)) { const { status, data: response_users } = await apiGet( apiPath.currentParlay, { _: Date.now() } ); if (status === 200) { if (response_users.success) { setParlayData(response_users.results); setRefreshCurrentBets(false); } } } }; // console.log(currentBets, "currentBets"); const sortTime = (check) => { setSortbyTime(check); }; const handle = (item, type) => { setData(item); setType(type); let obj = currentBets?.find((res) => res?.eventName == item?.eventName); setFiltered( type == "BetFair" ? obj.betList : type == "Bookmaker" ? obj.bookmakerList : type == "Fancy" ? obj.sessionBetList : type == "SportsBook" ? obj.sportBookBetList : type == "Toss" ? obj?.tossBetList?.map((res) => { return { ...res, isMatched: true }; }) : type == "Tie" ? obj?.tieBetList : type == "Parly" ? item?.bets : "" ); }; useEffect(() => { if (refreshCurrentBet) { setRefreshCurrentBets(false); handle(); getCurrentBets(); // getParlayData(); } }, [refreshCurrentBet]); const clearBets = async (id) => { setLoader(true); const { status, data: response_users } = await apiGet( `${apiPath.clearBets}matchBetId=${id}` ); if (status === 200) { if (response_users.success) { setLoader(false); setRefreshCurrentBets(true); setIsBetPlaced("clearBet"); setMessageBox(true); // setOpenBetsToogle(true); setData({}); setType(""); setFiltered({}); getCurrentBets(); } setLoader(false); } else { setLoader(false); } }; useEffect(() => { if (umMachedBetPlace) { setData({}); setType(""); setFiltered({}); setUnMatchedBetPlace(false); } }, [umMachedBetPlace]); return ( <>
{/*

Back England{" "} $1,000 at odds{" "} 1.29

Close
*/} {isEmpty(data) && ( )} {!isEmpty(data) && ( <>
{ setData(""); setSortbyTime(false); setType(""); setBetInfo(false); }} href="javascript:void(0)" >
  • {type == "Parly" ? (

    {" "} Bet Placed -{" "} {type == "Parly" ? data?.bets?.length == 0 ? "" : data?.bets?.length == 1 ? "SINGLE" : data?.bets?.length == 2 ? "DOUBLE" : data?.bets?.length == 3 ? "TREBLE" : "ACCMULATOR" : data?.eventName}{" "} - {type}

    ) : (

    {" "} {data?.eventName} - {type}

    )}
{type == "Parly" && (
Bet Id : {data?.matchBetId} Stake : {Number(data?.amount)?.toFixed(2)} Odds : {Number(data?.bhav)?.toFixed(2)} {" "} Win/Loss :{" "} {data?.isDeclared ? ( <> {data?.result == "loss" ? ( {startCase(data?.result)} ) : ( {startCase(data?.result)} )} ) : ( "..." )}
)} )} {!isEmpty(data) && ( <> {type == "Fancy" ? ( ) : type == "SportsBook" ? ( ) : type == "Parly" ? ( ) : ( )} {filtered?.some((res) => !res?.isMatched) && type == "BetFair" && ( )} )} {type == "Parly" ? "" : type !== "" && !isEmpty(filtered) && ( )}
); } export default Openbets;