adjust leaderboard page styles and header

This commit is contained in:
2025-04-06 15:58:18 +02:00
parent d6c1a29771
commit 515fc0780d
3 changed files with 61 additions and 103 deletions

View File

@@ -1,13 +0,0 @@
import { MainHeader } from '@/components/header'
import type { ReactNode } from 'react'
export default function RootLayout({
children,
}: Readonly<{ children: ReactNode }>) {
return (
<>
<MainHeader />
{children}
</>
)
}

View File

@@ -20,7 +20,6 @@ export default async function Home() {
return ( return (
<Suspense> <Suspense>
<HydrateClient> <HydrateClient>
{/*<UserStats/>*/}
<LeaderboardPage /> <LeaderboardPage />
</HydrateClient> </HydrateClient>
</Suspense> </Suspense>

View File

@@ -1,13 +1,13 @@
'use client' 'use client'
import type React from 'react' import type React from 'react'
import { useCallback } from 'react'
import { memo } from 'react'
import { useEffect } from 'react'
import { useMemo } from 'react'
import { import {
type ComponentPropsWithoutRef, type ComponentPropsWithoutRef,
Fragment, Fragment,
memo,
useCallback,
useEffect,
useMemo,
useRef, useRef,
useState, useState,
} from 'react' } from 'react'
@@ -25,7 +25,7 @@ import {
TableHeader, TableHeader,
TableRow, TableRow,
} from '@/components/ui/table' } from '@/components/ui/table'
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' import { Tabs, TabsList, TabsTrigger } from '@/components/ui/tabs'
import { cn } from '@/lib/utils' import { cn } from '@/lib/utils'
import { RANKED_CHANNEL, VANILLA_CHANNEL } from '@/shared/constants' import { RANKED_CHANNEL, VANILLA_CHANNEL } from '@/shared/constants'
import { api } from '@/trpc/react' import { api } from '@/trpc/react'
@@ -43,12 +43,14 @@ import {
} from 'lucide-react' } from 'lucide-react'
import Link from 'next/link' import Link from 'next/link'
import { useRouter, useSearchParams } from 'next/navigation' import { useRouter, useSearchParams } from 'next/navigation'
const getMedal = (rank: number) => { const getMedal = (rank: number) => {
if (rank === 1) return <Medal className='h-5 w-5 text-yellow-500' /> if (rank === 1) return <Medal className='h-5 w-5 text-yellow-500' />
if (rank === 2) return <Medal className='h-5 w-5 text-slate-400' /> if (rank === 2) return <Medal className='h-5 w-5 text-slate-400' />
if (rank === 3) return <Medal className='h-5 w-5 text-amber-700' /> if (rank === 3) return <Medal className='h-5 w-5 text-amber-700' />
return null return null
} }
export function LeaderboardPage() { export function LeaderboardPage() {
const router = useRouter() const router = useRouter()
const searchParams = useSearchParams() const searchParams = useSearchParams()
@@ -165,44 +167,15 @@ export function LeaderboardPage() {
[sortColumn, sortDirection] [sortColumn, sortDirection]
) )
// Get medal for top 3 players
return ( return (
<div className='flex h-screen flex-col overflow-hidden bg-gradient-to-b from-gray-50 to-gray-100 dark:from-zinc-900 dark:to-zinc-950'> <div className='flex flex-1 flex-col overflow-hidden'>
<div className='container mx-auto flex flex-1 flex-col'> <div className=' mx-auto flex w-[calc(100%-1rem)] max-w-fd-container flex-1 flex-col'>
<div className='flex flex-1 flex-col overflow-hidden border-none dark:bg-zinc-900'> <div className='flex flex-1 flex-col overflow-hidden border-none'>
<div className='border-gray-200 border-b bg-white p-6 dark:border-zinc-800 dark:bg-zinc-900'>
<div className='flex flex-col items-center justify-between gap-4 md:flex-row'>
<div>
<h1 className='flex items-center gap-2 font-bold text-3xl text-gray-900 dark:text-white'>
<Trophy className='h-7 w-7 text-violet-500 dark:text-violet-400' />
Leaderboards
</h1>
<p className='mt-1 text-gray-500 dark:text-zinc-400'>
View player rankings and statistics
</p>
</div>
<div className='flex items-center gap-3'>
<Badge
variant='outline'
className='border-gray-200 bg-gray-50 dark:border-zinc-700 dark:bg-zinc-800'
>
<Users className='mr-1 h-3 w-3 text-gray-500 dark:text-zinc-400' />
<span className='text-gray-700 dark:text-zinc-300'>
{currentLeaderboard.length} Players
</span>
</Badge>
</div>
</div>
</div>
<CardContent className='flex flex-1 flex-col p-0'>
<Tabs <Tabs
defaultValue={leaderboardType} defaultValue={leaderboardType}
value={leaderboardType} value={leaderboardType}
onValueChange={handleTabChange} onValueChange={handleTabChange}
className='flex flex-1 flex-col p-4 md:p-6' className='flex flex-1 flex-col px-0 py-4 md:py-6'
> >
<div className='mb-6 flex w-full flex-col items-start justify-between gap-4 md:items-center lg:flex-row'> <div className='mb-6 flex w-full flex-col items-start justify-between gap-4 md:items-center lg:flex-row'>
<TabsList className='border border-gray-200 border-b bg-gray-50 dark:border-zinc-800 dark:bg-zinc-800/50'> <TabsList className='border border-gray-200 border-b bg-gray-50 dark:border-zinc-800 dark:bg-zinc-800/50'>
@@ -254,7 +227,6 @@ export function LeaderboardPage() {
/> />
</div> </div>
</Tabs> </Tabs>
</CardContent>
</div> </div>
</div> </div>
</div> </div>