import Spring from "@components/Spring"; import styles from "./styles.module.scss"; import React, {useState, useEffect} from "react"; import {useDispatch, useSelector} from "react-redux"; import {getUserInfo} from "@features/mainSlice"; import {formatCash, formatCurrency, numFormatter, stringFormat} from "@utils/helpers"; import {getWDPayoutStatus, getWithdrawBaseInfo, getWithdrawInfo} from "@features/paySlice"; import symbol from "@assets/symbol-defs.svg"; import {ReactComponent as Edit} from '@assets/singlesvg/edit.svg'; import {useNavigate} from "react-router-dom"; import {ROUTE_PATH} from "@constants/routes"; import WDPassBox from "@widgets/WWithdraw/PassBox/WDPassBox"; import SmallLoading from "@components/SmallLoading"; import {reqWithdrawBaseInfo, reqWithdrawInfo, reqWithdrawPayout} from "@features/api"; import {REQ_STATUS} from "@api/config"; import {toast} from "react-toastify"; import {APP_COUNTRY_CODE} from "@constants/app"; const i18n=global.i18n; const BRWithdraw=()=>{ const user=useSelector(getUserInfo); const info=useSelector(getWithdrawBaseInfo); const navigate=useNavigate(); // let addBtnParam = [200, 500, 1000, 2000, 5000, -1]; const [addBtnParam, setAddBtnParam] = useState([200, 500, 1000, 2000, 5000, -1]); const [addIndex,setAddIndex]=useState(-1); const [wdValue,setWdValue]=useState(""); const [wdPass,setWdPass]=useState(""); const [openPassBox,setOpenPassBox]=useState(false); const dispatch = useDispatch(); const status=useSelector(getWDPayoutStatus); const accountInfo=useSelector(getWithdrawInfo); const areaItem=global.getLocalAreaItem(); useEffect(()=>{ // if (info==null){ // dispatch(reqWithdrawBaseInfo()) // } dispatch(reqWithdrawBaseInfo()); if (areaItem.code===APP_COUNTRY_CODE.MX){ if (accountInfo==null){ dispatch(reqWithdrawInfo({UserID:user.UserID})); } } else if (areaItem.code===APP_COUNTRY_CODE.RU){ if (accountInfo==null){ dispatch(reqWithdrawInfo({UserID:user.UserID})); } } },[]) useEffect(()=>{ let addValues=[200, 500, 1000, 2000, 5000, -1]; if (info!=null){ let srate=Number(info.srate); for (let i = 0; i < addValues.length; i++) { if (addValues[i]!==-1)addValues[i]=addValues[i]*srate; } setAddBtnParam(addValues); } },[info]) const checkBank=()=>{ if (info!=null){ // data.BankUserName, data.AccountsBank, data.cbPixType let name=info.BankUserName; let tname=info.AccountsBank; let type=info.type; return ((name != "") || (tname != "")) && (type != 0); } return false; } const onClickPayout=()=>{ if (status===REQ_STATUS.LOADING)return; if (wdValue===""){ toast.error(i18n.t("withdraw.main.score_null")) return; } if (!checkBank()){ toast.error(i18n.t("withdraw.main.unbound_account")) return; } let inputNum = Number(wdValue)*global.CASH_BASE; let lnum = info.OrderLimit - info.OrderCount; // data.WithDrawMin, data.WithDrawMax let min=info.MinExchange; let max=info.MaxExchange; let maxEx=Number(info.SumCanExchange); if (inputNummax){ toast.error(stringFormat(i18n.t("withdraw.tip.over_can_score"),[formatCash(max,0)])) return; } if (inputNum>maxEx){ toast.error(i18n.t("withdraw.tip.total_not_enough")) return; } if (lnum<=0){ return; } let num=Number(wdValue); if (num>0){ dispatch(reqWithdrawPayout({ score:num })) } } const getShowCash=(value)=>{ value=Number(value); return value/global.CASH_BASE; } const formatInput=(text)=>{ let Score=user.Score*global.CASH_BASE; let inputNum = Number(text)*global.CASH_BASE; inputNum = Math.min(inputNum, info.SumCanExchange); inputNum = Math.min(inputNum, Score); return (inputNum > 0) ? (getShowCash(inputNum)) : ""; } const getAddIndexFromValue=(value)=>{ value=Number(value); let index=addBtnParam.indexOf(value); if (index===-1){ if (value===info.CanWithDraw){ index=addBtnParam.length-1; } } return index; } const getAccountInfo=()=>{ let via=""; let accout=""; if (areaItem.code===APP_COUNTRY_CODE.MX){ let AccountsBank=info.AccountsBank; let BranchBank=info.BranchBank; if (AccountsBank!=null&&AccountsBank!=="")accout=AccountsBank; if (BranchBank!=null&&BranchBank!==""){ if (accountInfo!=null){ let bank_list=accountInfo.bank_list; if (bank_list!=null){ via=bank_list[BranchBank]; } } else via=BranchBank; } } else if (areaItem.code===APP_COUNTRY_CODE.RU){ let AccountsBank=info.AccountsBank; let PhoneNumber=info.PhoneNumber; let PixType=info.PixType; let BranchBank=info.BranchBank; if (PixType==="1"){ if(AccountsBank!=null&&AccountsBank!=="")accout=AccountsBank; } else { if(PhoneNumber!=null&&PhoneNumber!=="")accout=PhoneNumber; } if (BranchBank!=null&&BranchBank!==""){ if (accountInfo!=null){ let bank_list=accountInfo.bank_list; if (bank_list!=null){ via=bank_list[BranchBank]; } } else via=BranchBank; } } else { if (info!=null){ let BankUserName=info.BankUserName; let AccountsBank=info.AccountsBank; let cbPixType=Number(info.PixType); if (BankUserName!==""||AccountsBank!==""){ via=cbPixType >= 10 ? "TED" : "PIX"; accout=cbPixType >= 10 ? AccountsBank : BankUserName } } } return {via,accout}; } const renderUser=()=>{ return (
{i18n.t("withdraw.main.total_balance")}
{global.DOLLAR+" "+numFormatter(user.Score)}
{i18n.t("withdraw.main.withdrawable")}
{global.DOLLAR+" "+numFormatter(getShowCash(info.SumCanExchange))}
) } const renderWithdrawValue=()=>{ // let locales=global.getLocalAreaAlCode(); let locales=i18n.getCurrLangKey(); return (
{i18n.t("withdraw.main.editBox")}
{ addBtnParam.map((item,index)=>{ let label=item===-1?i18n.t("withdraw.main.btn_all"):global.DOLLAR+" "+formatCurrency(item,locales); return ( ) }) }
{global.DOLLAR}
{ // let value=formatInput(e.target.value); // setWdValue(value); // setAddIndex(getAddIndexFromValue(value)); setWdValue(e.target.value); }} /> { wdValue===""?(<>):( ) }
) } const renderAccount=()=>{ // let BankUserName=info.BankUserName; // let AccountsBank=info.AccountsBank; // let cbPixType=Number(info.PixType); // let via=""; // let accout=""; // if (BankUserName!==""||AccountsBank!==""){ // via=cbPixType >= 10 ? "TED" : "PIX"; // accout=cbPixType >= 10 ? AccountsBank : BankUserName // } const {via,accout}=getAccountInfo(); return (
{i18n.t("withdraw.account.title")}
{i18n.t("withdraw.main.via")}
{ via===""?(
{i18n.t("withdraw.main.bank_info_isNull")}
):(
{via}
) } {/*
*/}
{i18n.t("withdraw.main.account")}
{ accout===""?(
{i18n.t("withdraw.main.bank_No_isNull")}
):(
{accout}
) } {/*
*/}
) } const renderSubmit=()=>{ let num = info.OrderLimit - info.OrderCount; // data.WithDrawMin, data.WithDrawMax let min=getShowCash(info.MinExchange); let max=getShowCash(info.MaxExchange); return (
{stringFormat(i18n.t("withdraw.main.tip"),[min,max])}
) } const renderPassBox=()=>{ return ( { setOpenPassBox(false); }} onConfirm={(data)=>{ if (data!=null){ setWdPass(data); } }} > ) } return ( <> { info==null?(
):( {renderUser()} {renderWithdrawValue()} {renderAccount()} {renderSubmit()} {renderPassBox()} ) } ) } export default BRWithdraw;