소스 검색

刷新token

zhejiushizhuce 2 년 전
부모
커밋
4e20be0c8f
1개의 변경된 파일과 21개의 추가작업 그리고 3개의 파일을 삭제
  1. 21 3
      src/widgets/WSport/index.jsx

+ 21 - 3
src/widgets/WSport/index.jsx

@@ -1,11 +1,12 @@
 import styles from './styles.module.scss'
 import {useEffect, useRef} from "react";
 import {useThemeProvider} from "@contexts/themeContext";
-import {useSelector} from "react-redux";
+import {useDispatch, useSelector} from "react-redux";
 import {getBBConf, getUserID, getUserInfo} from "@features/mainSlice";
 import {APP_THEME} from "@constants/app";
 import {useNavigate} from "react-router-dom";
 import {ROUTE_PATH} from "@constants/routes";
+import {reqGameInfo} from "@features/api";
 const i18n=global.i18n;
 const objInfo={
     bt:null
@@ -18,6 +19,22 @@ const WSport=({})=>{
     const userID=useSelector(getUserID);
     const language=i18n.language;
     const navigate=useNavigate();
+    const dispatch=useDispatch();
+    const refreshToken=async ()=>{
+        return new Promise((resolve, reject) => {
+            dispatch(reqGameInfo()).then(({payload})=>{
+                let data=payload.data;
+                if (data!=null){
+                    let bb=data.bb;
+                    if (bb!=null){
+                        resolve(bb.token);
+                    }
+                    else reject('');
+                }
+                else reject('');
+            });
+        });
+    }
     const initBetby=()=>{
         if (bbConf==null)return null;
         let brand_id=bbConf.id;
@@ -29,15 +46,16 @@ const WSport=({})=>{
         // if (bbConf.token!=null)token=bbConf.token;
         if (user!=null&&user.bb!=null&&user.bb.token!=null)token=user.bb.token;
         // token=null;
+        let betSlipOffsetBottom=isMobile()?70:0;
         var bt = new window.BTRenderer().initialize({
             brand_id: brand_id,
             token: token,
-            onTokenExpired: function() {},
+            onTokenExpired: ()=>refreshToken(),
             themeName: themeName,
             // themeName: "bc-game-dark-tile",
             lang: language,
             target: document.getElementById('betby'),
-            betSlipOffsetBottom: 70,
+            betSlipOffsetBottom: betSlipOffsetBottom,
             betSlipOffsetRight: 0,
             betSlipOffsetTop: 130,
             betslipZIndex: 100,