Ver código fonte

update:更新

xiaolin.fu 6 meses atrás
pai
commit
4b70957a07

+ 1 - 0
.env.development

@@ -1,5 +1,6 @@
 # 环境
 #baseurl
+# NEXT_PUBLIC_BASE_URL=http://192.168.0.71:8800
 NEXT_PUBLIC_BASE_URL=http://192.168.0.84:8800
 #NEXT_PUBLIC_BASE_URL=https://server-webapi.tiktokjakjkl.icu
 #share link

+ 1 - 0
.env.local

@@ -1,5 +1,6 @@
 # 环境
 #baseurl
+# NEXT_PUBLIC_BASE_URL=http://192.168.0.71:8800
 NEXT_PUBLIC_BASE_URL=http://192.168.0.84:8800
 #NEXT_PUBLIC_BASE_URL=https://server-webapi.tiktokjakjkl.icu
 #share link

Diferenças do arquivo suprimidas por serem muito extensas
+ 934 - 296
pnpm-lock.yaml


+ 104 - 0
src/app/[locale]/(TabBar)/sports/SportsClient copy.tsx

@@ -0,0 +1,104 @@
+"use client";
+import { GameInfo } from "@/api/home";
+import { useRouter } from "@/i18n/routing";
+import { server } from "@/utils/client";
+import { useTranslations } from "next-intl";
+import Script from "next/script";
+import { FC, useEffect, useRef,useState } from "react";
+
+interface Props {
+    brand_id: string;
+    token: string;
+}
+//  dedprz | deepwin365 | damslots | chips |   deloro-casino
+const SportsClient: FC<Props> = (props) => {
+    const t = useTranslations("ProfilePage");
+    const { brand_id, token } = props;
+    const [currentToken, setCurrentToken] = useState(token);
+
+
+    const btRef = useRef(null);
+    const router = useRouter();
+    const getGameDetailApi = async () => {
+        const data = await server
+            .request<GameInfo>({
+                url: "/v1/api/front/game_info_by_id",
+                method: "post",
+                data: { id: "sportsBet", mode: 1 },
+            })
+            .then((res) => {
+                if (res.code === 200) {
+                  setCurrentToken(res.data.game_url)
+                  return res.data.game_url;
+                } else {
+                  return "";
+                }
+            });
+        return data;
+    };
+
+    const onLoad = () => {
+        // @ts-ignore
+        const bt = new BTRenderer();
+        btRef.current = bt;
+        console.log("btRef===>444", btRef)
+        bt.initialize({
+            brand_id: brand_id,
+            token: token,
+            onTokenExpired: getGameDetailApi,
+            onSessionRefresh: () => router.refresh(),
+            themeName: "default",
+            lang: "pt-br",
+            target: document.getElementById("betby"),
+            betSlipOffsetBottom: 80,
+            // betSlipOffsetRight: 750,
+
+            betSlipZIndex: 1000,
+            stickyTop: 0,
+            betSlipOffsetTop: 50,
+            onRecharge: function () {
+                router.push("/deposit");
+            },
+            onRouteChange: function () {
+              console.log("token===>5555", token)
+            },
+            onLogin: function () {},
+            onRegister: function () {},
+            onBetSlipStateChange: function () {},
+        });
+    };
+
+    useEffect(() => {
+     
+        updateToken(token);
+        
+        // return () => {
+        //     // @ts-ignore
+        //     btRef.current?.kill();
+        // };
+    }, [token]);
+
+    const updateToken = (token: string) => {
+      // @ts-ignore
+        console.log("token===>333",window.BTRenderer)
+        if(currentToken!== token){
+          // setCurrentToken(token);
+        }
+         // @ts-ignore
+         if (window.BTRenderer) {
+          onLoad();
+        }
+    }
+
+
+    return (
+        <>    
+          <div id="betby" className={"h-[100%]"}>
+          </div>
+
+          <Script src={"https://ui.invisiblesport.com/bt-renderer.min.js"} onLoad={onLoad} />
+        </>
+    );
+};
+
+export default SportsClient;

+ 55 - 17
src/app/[locale]/(TabBar)/sports/SportsClient.tsx

@@ -4,7 +4,7 @@ import { useRouter } from "@/i18n/routing";
 import { server } from "@/utils/client";
 import { useTranslations } from "next-intl";
 import Script from "next/script";
-import { FC, useEffect, useRef } from "react";
+import { FC, useEffect, useRef,useState } from "react";
 
 interface Props {
     brand_id: string;
@@ -14,9 +14,33 @@ interface Props {
 const SportsClient: FC<Props> = (props) => {
     const t = useTranslations("ProfilePage");
     const { brand_id, token } = props;
+    const [currentToken, setCurrentToken] = useState(token);
+
 
     const btRef = useRef(null);
     const router = useRouter();
+
+    // useEffect(() => {
+    //   // @ts-ignore
+    //   if (window.BTRenderer) {
+    //     onLoad();
+    //   }
+      
+    //   return () => {
+    //       // @ts-ignore
+    //       btRef.current?.kill();
+    //   };
+    // }, []);
+
+    useEffect(() => {
+      updateToken(token);
+      // return () => {
+      //     // @ts-ignore
+      //     btRef.current?.kill();
+      // };
+    }, [token]);
+
+
     const getGameDetailApi = async () => {
         const data = await server
             .request<GameInfo>({
@@ -26,9 +50,10 @@ const SportsClient: FC<Props> = (props) => {
             })
             .then((res) => {
                 if (res.code === 200) {
-                    return res.data.game_url;
+                  setCurrentToken(res.data.game_url)
+                  return res.data.game_url;
                 } else {
-                    return "";
+                  return "";
                 }
             });
         return data;
@@ -40,9 +65,17 @@ const SportsClient: FC<Props> = (props) => {
         btRef.current = bt;
         bt.initialize({
             brand_id: brand_id,
-            token: token,
-            onTokenExpired: getGameDetailApi,
-            onSessionRefresh: () => router.refresh(),
+            token: token,//使用最新的token
+            // onTokenExpired: getGameDetailApi, //过期自动更新token
+            onSessionRefresh: () => {
+              // 销毁之前的实例并等待刷新完成
+              if(btRef.current){
+                // @ts-ignore
+                btRef.current?.kill();
+              }
+              
+              router.refresh()
+            },
             themeName: "default",
             lang: "pt-br",
             target: document.getElementById("betby"),
@@ -55,29 +88,34 @@ const SportsClient: FC<Props> = (props) => {
             onRecharge: function () {
                 router.push("/deposit");
             },
-            onRouteChange: function () {},
+            onRouteChange: function () {
+            },
             onLogin: function () {},
             onRegister: function () {},
             onBetSlipStateChange: function () {},
         });
     };
 
-    useEffect(() => {
+    
+    const updateToken = (token: string) => {
+      // @ts-ignore
+        console.log("token===>333",window.BTRenderer,token,currentToken)
+        // if(currentToken!== token){
+          setCurrentToken(token);
+        // }
+
         // @ts-ignore
         if (window.BTRenderer) {
-            onLoad();
+          onLoad();
         }
-        return () => {
-            // @ts-ignore
-            btRef.current?.kill();
-        };
-    }, []);
+    }
+
 
     return (
-        <>
-            <div id="betby" className={"h-[100%]"}></div>
+        <>    
+          <div id="betby" className={"h-[100%]"}></div>
 
-            <Script src={"https://ui.invisiblesport.com/bt-renderer.min.js"} onLoad={onLoad} />
+          <Script src={"https://ui.invisiblesport.com/bt-renderer.min.js"} onLoad={onLoad} />
         </>
     );
 };

+ 6 - 1
src/app/[locale]/(TabBar)/sports/page.tsx

@@ -1,6 +1,9 @@
 import { GameInfo, GameRequest } from "@/api/home";
 import { server } from "@/utils/server";
 import SportsClient from "./SportsClient";
+import { useState } from "react";
+
+
 const getGameDetailApi = async (data: GameRequest) => {
     return server.request<GameInfo>({
         url: "/v1/api/front/game_info_by_id",
@@ -10,6 +13,8 @@ const getGameDetailApi = async (data: GameRequest) => {
 };
 const Page = async () => {
     const result = await getGameDetailApi({ id: "sportsBet", mode: 1 });
-    return <SportsClient brand_id={result.data.brand_id} token={result.data.game_url} />;
+
+   
+    return <SportsClient brand_id={result?.data?.brand_id} token={result?.data?.game_url} />;
 };
 export default Page;

+ 14 - 14
src/components/ModalPopup/DesktopModal/index.tsx

@@ -54,23 +54,23 @@ const Desktop = forwardRef<DesktopRefProps, Props>(function Desktop(props, ref)
             </div>
             <div className={"mb-[0.16rem] mt-[0.1rem] text-right"}>
                 <Button
-                    color="default"
-                    className={"mr-[10px]"}
-                    style={{ "--text-color": "#8d8d8d" }}
-                    fill="none"
-                    onClick={cancel}
+                  color="default"
+                  className={"mr-[10px]"}
+                  style={{ "--text-color": "#8d8d8d" }}
+                  fill="none"
+                  onClick={cancel}
                 >
-                    {t("cancel")}
+                  {t("cancel")}
                 </Button>
                 <Button
-                    color="primary"
-                    style={{
-                        "--text-color": "#ff6a01",
-                        "--border-color": "#ff6a01",
-                        "--border-radius": "10px",
-                    }}
-                    fill="outline"
-                    onClick={downloadHandler}
+                  color="primary"
+                  style={{
+                      "--text-color": "#ff6a01",
+                      "--border-color": "#ff6a01",
+                      "--border-radius": "10px",
+                  }}
+                  fill="outline"
+                  onClick={downloadHandler}
                 >
                     {t("save")}
                 </Button>

+ 1 - 0
src/utils/server/index.ts

@@ -76,6 +76,7 @@ class Server {
                     console.log(`🚀🚀🚀🚀🚀-> in index.ts on 68`, error);
                     return {};
                 });
+                console.log(`🚀🚀🚀🚀🚀-> in index.ts on 79`, response);
             return responseInterceptor<T, R>(response, options, this.BASE_URL);
         } catch (error) {
             console.log(

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff