import { desc } from "drizzle-orm"; import Link from "next/link"; import { getTranslations } from "next-intl/server"; import { ContentCard, EmptyState, OnlineBadge, RankBadge, } from "@/components/public/ui"; import { UserAvatarThumbnail } from "@/components/shared/user-avatar-thumbnail"; import { db, User } from "@/lib/db"; export const metadata = { title: "Rankings" }; type TopUser = { username: string; look: string; credits: number; rank: number; online: string; }; export default async function RankingsPage() { const t = await getTranslations("pages.rankings"); let users: TopUser[] = []; try { users = await db .select({ username: User.username, look: User.look, credits: User.credits, rank: User.rank, online: User.online, }) .from(User) .orderBy(desc(User.credits)) .limit(12); } catch { users = []; } return (
{users.length === 0 ? ( {t("emptyState")} ) : (
{users.map((u, i) => { return (

{u.username}

c {u.credits.toLocaleString()}

); })}
)}
); }