|
@@ -1,6 +1,7 @@
|
|
|
"use client";
|
|
|
-import { Rank, RankDetail } from "@/api/activity";
|
|
|
-import VipIcon from "@/components/VipIcon";
|
|
|
+import { GameItem, Rank, RankDetail } from "@/api/activity";
|
|
|
+import Vip from "@/components/Vip";
|
|
|
+import { vipImagesMap } from "@/components/VipIcon";
|
|
|
import clsx from "clsx";
|
|
|
import React from "react";
|
|
|
import styles from "./page.module.scss";
|
|
@@ -8,9 +9,13 @@ import styles from "./page.module.scss";
|
|
|
interface Props {
|
|
|
data: RankDetail;
|
|
|
rankList: Rank[];
|
|
|
+ gamesInfo?: {
|
|
|
+ count: number;
|
|
|
+ list: GameItem[];
|
|
|
+ };
|
|
|
}
|
|
|
|
|
|
-const MiddleContainer: React.FC<Props> = ({ data, rankList = [] }) => {
|
|
|
+const MiddleContainer: React.FC<Props> = ({ data, rankList = [], gamesInfo }) => {
|
|
|
const headerData = React.useMemo(() => {
|
|
|
if (!rankList?.length) return [];
|
|
|
|
|
@@ -63,7 +68,7 @@ const MiddleContainer: React.FC<Props> = ({ data, rankList = [] }) => {
|
|
|
id: "middleContainer",
|
|
|
},
|
|
|
{
|
|
|
- text: "Jogos(1976)",
|
|
|
+ text: `Jogos(${gamesInfo?.count})`,
|
|
|
id: "jackpot",
|
|
|
},
|
|
|
{
|
|
@@ -71,7 +76,7 @@ const MiddleContainer: React.FC<Props> = ({ data, rankList = [] }) => {
|
|
|
id: "rankFooter",
|
|
|
},
|
|
|
];
|
|
|
- }, []);
|
|
|
+ }, [gamesInfo]);
|
|
|
|
|
|
const scrollInto = (item: any) => {
|
|
|
const dom = document.querySelector(`#${item.id}`);
|
|
@@ -106,6 +111,7 @@ const MiddleContainer: React.FC<Props> = ({ data, rankList = [] }) => {
|
|
|
<img src="/rank/bg2.webp" alt="" />
|
|
|
<div className={clsx(styles.persons, "px-[.2rem]")}>
|
|
|
{headerData.map((item: Rank, idx) => {
|
|
|
+ const curVip = vipImagesMap.get(item.vipLevel || 1);
|
|
|
return (
|
|
|
<div key={idx} className={styles.personItem}>
|
|
|
{item && (
|
|
@@ -120,22 +126,15 @@ const MiddleContainer: React.FC<Props> = ({ data, rankList = [] }) => {
|
|
|
alt=""
|
|
|
className={styles.userHeader}
|
|
|
/>
|
|
|
- <div className={styles.vip}>
|
|
|
- <VipIcon
|
|
|
- style={{ width: ".3rem" }}
|
|
|
- className="relative z-[3]"
|
|
|
- level={item.vipLevel}
|
|
|
- ></VipIcon>
|
|
|
- <div
|
|
|
- className={styles.vipText}
|
|
|
- style={{
|
|
|
- background:
|
|
|
- "linear-gradient(to right,#ccc,#4e89d1)",
|
|
|
- }}
|
|
|
- >
|
|
|
- VIP {item.vipLevel}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <Vip
|
|
|
+ style={{
|
|
|
+ position: "absolute",
|
|
|
+ bottom: "-0.25rem",
|
|
|
+ }}
|
|
|
+ level={item.vipLevel}
|
|
|
+ vipIconClassName="relative z-[3]"
|
|
|
+ vipIconStyle={{ width: ".3rem" }}
|
|
|
+ ></Vip>
|
|
|
</>
|
|
|
)}
|
|
|
</div>
|
|
@@ -175,6 +174,7 @@ const MiddleContainer: React.FC<Props> = ({ data, rankList = [] }) => {
|
|
|
{!!moreList?.length && (
|
|
|
<div className="mt-[.1rem] px-[.1rem]">
|
|
|
{moreList.map((item) => {
|
|
|
+ const curVip = vipImagesMap.get(item.vipLevel || 1);
|
|
|
return (
|
|
|
<div
|
|
|
className={clsx(styles.normalItem, {
|
|
@@ -191,22 +191,15 @@ const MiddleContainer: React.FC<Props> = ({ data, rankList = [] }) => {
|
|
|
alt=""
|
|
|
className={styles.headerImage}
|
|
|
/>
|
|
|
- <div className={styles.vip}>
|
|
|
- <VipIcon
|
|
|
- style={{ width: ".3rem" }}
|
|
|
- className="relative z-[3]"
|
|
|
- level={2}
|
|
|
- ></VipIcon>
|
|
|
- <div
|
|
|
- className={styles.vipText}
|
|
|
- style={{
|
|
|
- background:
|
|
|
- "linear-gradient(to right,#ccc,#4e89d1)",
|
|
|
- }}
|
|
|
- >
|
|
|
- VIP 1
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <Vip
|
|
|
+ style={{
|
|
|
+ position: "absolute",
|
|
|
+ bottom: "-0.1rem",
|
|
|
+ }}
|
|
|
+ level={item.vipLevel}
|
|
|
+ vipIconClassName="relative z-[3]"
|
|
|
+ vipIconStyle={{ width: ".3rem" }}
|
|
|
+ ></Vip>
|
|
|
</div>
|
|
|
<div className="flex-1">
|
|
|
<div>sadasdasd</div>
|
|
@@ -230,21 +223,15 @@ const MiddleContainer: React.FC<Props> = ({ data, rankList = [] }) => {
|
|
|
alt=""
|
|
|
className={styles.headerImage}
|
|
|
/>
|
|
|
- <div className={styles.vip}>
|
|
|
- <VipIcon
|
|
|
- style={{ width: ".3rem" }}
|
|
|
- className="relative z-[3]"
|
|
|
- level={data?.self_rank?.vipLevel || 1}
|
|
|
- ></VipIcon>
|
|
|
- <div
|
|
|
- className={styles.vipText}
|
|
|
- style={{
|
|
|
- background: "linear-gradient(to right,#ccc,#4e89d1)",
|
|
|
- }}
|
|
|
- >
|
|
|
- VIP {data?.self_rank?.vipLevel}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <Vip
|
|
|
+ style={{
|
|
|
+ position: "absolute",
|
|
|
+ bottom: "-0.1rem",
|
|
|
+ }}
|
|
|
+ level={data?.self_rank?.vipLevel}
|
|
|
+ vipIconClassName="relative z-[3]"
|
|
|
+ vipIconStyle={{ width: ".3rem" }}
|
|
|
+ ></Vip>
|
|
|
</div>
|
|
|
<div className="flex-1">
|
|
|
<div>sadasdasd</div>
|