|
@@ -1,10 +1,11 @@
|
|
|
+"use client";
|
|
|
import Box from "@/components/Box";
|
|
|
-import { Link, useRouter } from "@/i18n/routing";
|
|
|
+import { Link, usePathname, useRouter } from "@/i18n/routing";
|
|
|
import { useSocialStore } from "@/stores/useSocials";
|
|
|
import { useSystemStore } from "@/stores/useSystemStore";
|
|
|
import { Input } from "antd-mobile";
|
|
|
import { useTranslations } from "next-intl";
|
|
|
-import { FC, PropsWithChildren, useRef } from "react";
|
|
|
+import { FC, PropsWithChildren, useEffect, useRef } from "react";
|
|
|
import { useSwiper } from "swiper/react";
|
|
|
interface Props {}
|
|
|
|
|
@@ -15,34 +16,58 @@ const cardData = [
|
|
|
{ url: "", icon: "https://9f.com/images/homePage/card/c-firstdeposit.png", desc: "" },
|
|
|
];
|
|
|
const tabs = [
|
|
|
- { name: "casino", id: 1 },
|
|
|
- { name: "esportes", id: 2 },
|
|
|
+ { name: "casino", id: 1, icon: "pro-niuyouguo" },
|
|
|
+ { name: "esportes", id: 2, icon: "pro-zuqiu" },
|
|
|
];
|
|
|
const Sidebar: FC<PropsWithChildren<Props>> = (props) => {
|
|
|
const t = useTranslations("Sidebar");
|
|
|
const socials = useSocialStore((state) => state.socials);
|
|
|
|
|
|
- const setCollapse = useSystemStore((state) => state.setCollapse);
|
|
|
const swiper = useSwiper();
|
|
|
const router = useRouter();
|
|
|
const tab = useRef<HTMLDivElement>(null);
|
|
|
const bgRef = useRef<HTMLDivElement>(null);
|
|
|
- const tabHandler = (index: number) => {
|
|
|
+
|
|
|
+ const pathname = usePathname();
|
|
|
+ const { isCollapse, setCollapse } = useSystemStore((state) => ({
|
|
|
+ isCollapse: state.isCollapse,
|
|
|
+ setCollapse: state.setCollapse,
|
|
|
+ }));
|
|
|
+
|
|
|
+ const tabHandler = (index: number, isAction = true) => {
|
|
|
bgRef.current?.setAttribute(
|
|
|
"style",
|
|
|
`transform: translateX(${tab.current?.clientWidth! * index}px)`
|
|
|
);
|
|
|
- if (index === 1) {
|
|
|
- router.push("/sports");
|
|
|
- } else {
|
|
|
- router.push("/");
|
|
|
+ if (isAction) {
|
|
|
+ switch (index) {
|
|
|
+ case 0:
|
|
|
+ router.push("/");
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ router.push("/sports");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ router.push("/help");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ // 关闭侧边栏按钮
|
|
|
+ setCollapse(false);
|
|
|
+ // 关闭swiper
|
|
|
+ swiper.slideNext();
|
|
|
}
|
|
|
- // 关闭侧边栏按钮
|
|
|
- setCollapse(false);
|
|
|
- // 关闭swiper
|
|
|
- swiper.slideNext();
|
|
|
+
|
|
|
return index;
|
|
|
};
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ if (pathname === "/") {
|
|
|
+ tabHandler(0, false);
|
|
|
+ } else {
|
|
|
+ tabHandler(1, false);
|
|
|
+ }
|
|
|
+ }, [isCollapse]);
|
|
|
+
|
|
|
return (
|
|
|
<Box>
|
|
|
{/*tabs*/}
|
|
@@ -53,9 +78,15 @@ const Sidebar: FC<PropsWithChildren<Props>> = (props) => {
|
|
|
<div
|
|
|
key={index}
|
|
|
onClick={() => tabHandler(index)}
|
|
|
- className={"z-20 flex-1 cursor-pointer text-center"}
|
|
|
+ className={
|
|
|
+ "z-20 flex h-[0.3056rem] flex-1 justify-center" +
|
|
|
+ " cursor-pointer items-center"
|
|
|
+ }
|
|
|
ref={tab}
|
|
|
>
|
|
|
+ <span
|
|
|
+ className={`pro-iconfont ${item.icon} mr-[0.05rem] text-[20px]`}
|
|
|
+ ></span>
|
|
|
{t(item.name)}
|
|
|
</div>
|
|
|
);
|
|
@@ -96,6 +127,7 @@ const Sidebar: FC<PropsWithChildren<Props>> = (props) => {
|
|
|
{/* Esportes */}
|
|
|
<section
|
|
|
className={"flex items-center rounded-[3px] bg-[#3a3a3a] p-[0.08rem] text-[#fff]"}
|
|
|
+ onClick={() => tabHandler(1)}
|
|
|
>
|
|
|
<i className={"iconfont icon-tiyu mr-[0.0694rem] text-[0.15rem]"}></i>
|
|
|
<div className={"flex-1"}>{t("esportes")}</div>
|
|
@@ -147,23 +179,26 @@ const Sidebar: FC<PropsWithChildren<Props>> = (props) => {
|
|
|
</section>
|
|
|
|
|
|
<section className={"mt-[0.11rem] text-[#7d7d7d]"}>
|
|
|
- <div className={"flex items-center p-[0.08rem]"}>
|
|
|
+ <div onClick={() => tabHandler(2)} className={"flex items-center p-[0.08rem]"}>
|
|
|
<i className={"iconfont icon-bangzhu mr-[0.0694rem] text-[0.15rem]"}></i>
|
|
|
<div className={"flex-1"}> {t("ajude")}</div>
|
|
|
</div>
|
|
|
- <div className={"flex items-center p-[0.08rem]"}>
|
|
|
+ <Link
|
|
|
+ href="mailto:support@bcwin777"
|
|
|
+ className={"flex items-center p-[0.08rem] text-[#7d7d7d]"}
|
|
|
+ >
|
|
|
<i className={"iconfont icon-duanxinguanli mr-[0.0694rem] text-[0.15rem]"}></i>
|
|
|
<div className={"flex-1"}> {t("email")}</div>
|
|
|
- </div>
|
|
|
- <div className={"flex items-center p-[0.08rem]"}>
|
|
|
- <i className={"iconfont icon-fenxiang mr-[0.0694rem] text-[0.15rem]"}></i>
|
|
|
- <div className={"flex-1"}> {t("inicial")} </div>
|
|
|
- </div>
|
|
|
- </section>
|
|
|
- <section className={"flex justify-between p-[0.08rem] text-[12px] text-[#7d7d7d]"}>
|
|
|
- <span>Version</span>
|
|
|
- <span>0.0.2</span>
|
|
|
+ </Link>
|
|
|
+ {/*<div className={"flex items-center p-[0.08rem]"}>*/}
|
|
|
+ {/* <i className={"iconfont icon-fenxiang mr-[0.0694rem] text-[0.15rem]"}></i>*/}
|
|
|
+ {/* <div className={"flex-1"}> {t("inicial")} </div>*/}
|
|
|
+ {/*</div>*/}
|
|
|
</section>
|
|
|
+ {/*<section className={"flex justify-between p-[0.08rem] text-[12px] text-[#7d7d7d]"}>*/}
|
|
|
+ {/* <span>Version</span>*/}
|
|
|
+ {/* <span>0.0.2</span>*/}
|
|
|
+ {/*</section>*/}
|
|
|
</Box>
|
|
|
);
|
|
|
};
|