Pārlūkot izejas kodu

修改sport 加入配置 语言 亮暗 刷新 token 变化更新

zhejiushizhuce 2 gadi atpakaļ
vecāks
revīzija
69252856a3
1 mainītis faili ar 46 papildinājumiem un 9 dzēšanām
  1. 46 9
      src/widgets/WSport/index.jsx

+ 46 - 9
src/widgets/WSport/index.jsx

@@ -1,36 +1,73 @@
 import styles from './styles.module.scss'
 import {useEffect, useRef} from "react";
 import {useThemeProvider} from "@contexts/themeContext";
+import {useSelector} from "react-redux";
+import {getBBConf, getUserInfo} from "@features/mainSlice";
+import {APP_THEME} from "@constants/app";
+import {useNavigate} from "react-router-dom";
+import {ROUTE_PATH} from "@constants/routes";
 const i18n=global.i18n;
+const objInfo={
+    bt:null
+}
 const WSport=({})=>{
     const {isMobile}=useThemeProvider();
+    const bbConf=useSelector(getBBConf);
+    const {theme}=useThemeProvider();
+    const user=useSelector(getUserInfo);
+    const language=i18n.language;
+    const navigate=useNavigate();
     const initBetby=()=>{
+        if (bbConf==null)return null;
+        let brand_id=bbConf.id;
+        let bbtheme=bbConf.theme;
+        let themeIndex=0;
+        if (theme===APP_THEME.LIGHT)themeIndex=1;
+        let themeName=bbtheme[themeIndex];
+        let token=null;
+        if (bbConf.token!=null)token=bbConf.token;
+        if (user!=null&&user.bb!=null&&user.bb.token!=null)token=user.bb.token;
+        // token=null;
         var bt = new window.BTRenderer().initialize({
-            brand_id: "2424948766365847552",
-            token: "",
+            brand_id: brand_id,
+            token: token,
             onTokenExpired: function() {},
-            themeName: "default-table",
+            themeName: themeName,
             // themeName: "bc-game-dark-tile",
-            lang: i18n.language,
+            lang: language,
             target: document.getElementById('betby'),
             betSlipOffsetBottom: 70,
             betSlipOffsetRight: 0,
             betSlipOffsetTop: 130,
             betslipZIndex: 100,
             onRouteChange: function() {},
-            onLogin: function() {},
-            onRegister: function() {},
+            onLogin: function() {
+                navigate(ROUTE_PATH.SIGN_IN);
+            },
+            onRegister: function() {
+                navigate(ROUTE_PATH.SIGN_UP);
+            },
+            onRecharge:function (){
+                navigate(ROUTE_PATH.PAY);
+            },
             onSessionRefresh: function() {},
             onBetSlipStateChange: function() {}
         })
         return bt;
     }
+    const clearBT=()=>{
+        if (objInfo.bt){
+            objInfo.bt.kill();
+            objInfo.bt=null;
+        }
+    }
     useEffect(()=>{
-        const bt=initBetby();
+        clearBT();
+        objInfo.bt=initBetby();
         return ()=>{
-            if (bt)bt.kill();
+            clearBT();
         }
-    },[])
+    },[user,theme,language])
     return (
         <div id="betby" className={`${styles.container} ${isMobile()?styles.container_m:''}`}></div>
     )