import styles from "./styles.module.scss"; import Spring from "@components/Spring"; import React, {useEffect, useState} from "react"; import {useNavigate} from "react-router-dom"; import {useSelector} from "react-redux"; import {getUserInfo} from "@features/mainSlice"; import {getCurrPayOrder} from "@features/paySlice"; import {ReactComponent as PixLogo} from '@assets/singlesvg/pix.svg'; import {formatDate, formatTime, stringFormat} from "@utils/helpers"; import SvgIcon from "@components/SvgIcon"; import {CopyToClipboard} from "react-copy-to-clipboard"; import {toast} from "react-toastify"; import QRCode from 'qrcode.react'; import {ReactComponent as SuccessIcon} from "@assets/singlesvg/succss.svg"; import WOrderSuccess from "@widgets/WPaymentOrder/WOrderSuccess"; const i18n=global.i18n; const BRPayOrder=({close})=>{ const navigate=useNavigate(); const user=useSelector(getUserInfo); const orderInfo=useSelector(getCurrPayOrder); const [leftTime,setLeftTime]=useState(0); const getLeftTime=()=>{ if (orderInfo==null)return 0; let deadline=Number(orderInfo.deadline); let createAt=Number(orderInfo.createAt); let expireAt=createAt+deadline*1000; let now=Date.now(); let left=expireAt-now; if (left<0)left=0; return left; } const updateLeftTime=(timer)=>{ let left=getLeftTime(); setLeftTime(left); if (left<=0){ clearInterval(timer); timer=null; if (close)close(); } return timer; } useEffect(()=>{ let timer=null; if (orderInfo){ setLeftTime(getLeftTime()); timer=setInterval(()=>{ timer=updateLeftTime(timer); },1000) } return () => { if (timer!=null){ clearInterval(timer); timer=null; } }; },[orderInfo]) const renderTitle=()=>{ return (
{i18n.t("deposit.order_info.pay_type_pix")}
) } const renderBasic=()=>{ let deadline=Number(orderInfo.deadline); let createAt=Number(orderInfo.createAt); let expireAt=createAt+deadline*1000; return ( <>
{stringFormat(i18n.t("deposit.order_info.tips"),[formatDate(expireAt)])}
{i18n.t("deposit.order_info.create_date")}
{formatDate(createAt)}
{/*
*/}
{i18n.t("deposit.order_info.time")}
{formatTime(leftTime,true)}
{/*
*/} { toast.success(i18n.t("copy_success")); }}>
{i18n.t("deposit.order_info.order")}
{orderInfo.prdOrdNo}
{i18n.t("deposit.order_info.value")}
{global.DOLLAR+orderInfo.money}
) } const renderPayInfo=()=>{ return (
{i18n.t("deposit.order_info.content")}
{orderInfo.content}
{ toast.success(i18n.t("deposit.order_info.tips1")); }}> {/**/}
) } const renderOrderInfo=()=>{ return (
{renderBasic()} {renderPayInfo()}
) } const renderSuccess=()=>{ return (
{i18n.t("deposit.order_info.tips2")}
) } const renderView=()=>{ let view=(<>); if (orderInfo==null)return view; if (orderInfo.status==="success"){ view=( // // {renderSuccess()} // ) } else { view=( {renderTitle()} {renderOrderInfo()} ) } return view; } return ( <> {renderView()} ) } export default BRPayOrder;