"use client" import * as React from "react" import { Skeleton } from "@/components/ui/skeleton" import { cn } from "@/lib/utils" import type { UserRankResponse } from "@/lib/services/leaderboard" import { UserRound } from "lucide-react" interface UserRankCardProps { data: UserRankResponse | null loading?: boolean className?: string } export const UserRankCard = React.memo(function UserRankCard({ data, loading, className, }: UserRankCardProps) { if (loading) { return ( 我的排名 {Array.from({ length: 2 }).map((_, index) => ( ))} ) } return ( 我的排名 {data ? ( <> 当前名次 #{data.user.rank.toLocaleString()} 可用积分 {parseFloat(data.user.available_balance).toFixed(2)} > ) : ( 当前状态 暂未进入榜单 继续积累可用积分后会出现在排行榜中。 )} ) })