import Modal from "@mui/material/Modal"; import Fade from "@mui/material/Fade"; import styles from "./styles.module.scss"; import {useEffect, useState} from "react"; import Grow from "@mui/material/Grow"; import closeImg from '@assets/checkIn/com_tanc_X.png'; import {useDispatch, useSelector} from "react-redux"; import {getCheckInData, getCheckInStatus, getNextGetTime} from "@features/checkInSlice"; import {useNavigate} from "react-router-dom"; import {ROUTE_PATH} from "@constants/routes"; import {reqCheckinCheck, reqCheckinGet, reqRedpackCheck} from "@features/api"; import {REQ_STATUS} from "@api/config"; import SmallLoading from "@components/SmallLoading"; import {formatTime} from "@utils/helpers"; const i18n=global.i18n; const imgList={ 1:{ src:require("@assets/checkIn/1.png"), height:"3.2rem" }, 2:{ src:require("@assets/checkIn/1.png"), height:"3.2rem" }, 3:{ src:require("@assets/checkIn/2.png"), height:"3.6rem" }, 4:{ src:require("@assets/checkIn/3.png"), height:"3.9rem" }, 5:{ src:require("@assets/checkIn/3.png"), height:"3.9rem" }, 6:{ src:require("@assets/checkIn/4.png"), height:"4.3rem" }, 7:{ src:require("@assets/checkIn/5.png"), height:"3.7rem" } } const objInfo={ timer:null } const WCheckIn = ({close}) => { const [open,setOpen]=useState(true); const checkInData=useSelector(getCheckInData); const status=useSelector(getCheckInStatus); const navigate=useNavigate(); const dispatch=useDispatch(); const NextGetTime=useSelector(getNextGetTime); const [leftTime,setLeftTime]=useState(0); const resetTimer=()=>{ if (objInfo.timer!=null){ clearInterval(objInfo.timer); objInfo.timer=null; } } useEffect(()=>{ // dispatch(reqCheckinCheck()); if (checkInData.RewardDay==null||checkInData.RewardDay.length===0){ dispatch(reqCheckinCheck()); } return ()=>{ resetTimer(); } },[]); useEffect(()=>{ resetTimer(); let now=Date.now(); let left=NextGetTime-now; if (left>0){ setLeftTime(left); objInfo.timer=setInterval(()=>{ now=Date.now(); left=NextGetTime-now; if (left<=0){ left=0; dispatch(reqCheckinCheck()); resetTimer(); } setLeftTime(left); },1000); } },[NextGetTime]) const onClose=()=>{ setOpen(false); if(close)close(); } const onOpenPay=()=>{ navigate("/"+ROUTE_PATH.PAY,{replace:true}) } const onCheckInCB=(payload)=>{ if (payload&&payload.code===200){ global.showDropCoins(); close(); } // else if (payload&&payload.code===301) // { // let data={ // content:i18n.t("CheckIn.must_recharge"), // sureLabel:i18n.t("CheckIn.btn_to_recharge"), // sureCB:onOpenPay, // } // global.msgBoxShow(data) // } } const onCheckIn=(cashNum)=>{ if (status.CheckInGet===REQ_STATUS.LOADING)return; if (leftTime>0)return; dispatch(reqCheckinGet({ cashNum:cashNum, callback:onCheckInCB })); } const renderBonusList=()=>{ let RewardDay=checkInData.RewardDay; if(RewardDay==null)RewardDay=[]; let rowData=[ RewardDay.slice(0,4), RewardDay.slice(4,7), ] let nDayNumber=checkInData.NextDayNumber; nDayNumber=nDayNumber-1; if (nDayNumber>7)nDayNumber=7; let cbRecord=checkInData.cbRecord; let itemIndex=0; return (
{ rowData.map((rowList,rindex)=>{ return (
{ rowList.map((item,index)=>{ let isDone=cbRecord[itemIndex]; itemIndex++; return (
{ isDone===1? (
):(<>) }
) }) }
) }) }
) } const renderButtons=()=>{ let nDayNumber=checkInData.NextDayNumber; if (nDayNumber>7)nDayNumber=7; let RewardScore=checkInData.RewardScore; let cashNum=RewardScore[nDayNumber-1]; return (
) } const renderMain = () => { let RewardDay = checkInData.RewardDay; let isLoading=!(RewardDay!=null&&RewardDay.length>0); return (
{i18n.t("CheckIn.title")}
{ isLoading?():( <> {renderBonusList()} {renderButtons()} ) }
) } return ( <>
{renderMain()}
) } export default WCheckIn;