From 6600bba58c091d00ccd207cd6c6b836e3f688b84 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com>
Date: Tue, 7 Nov 2023 17:33:41 -0600
Subject: [PATCH] feat: better layout
---
src/app/tools/ratings/page.tsx | 431 +++++++++++++++++----------------
src/components/PageWrapper.tsx | 13 +-
2 files changed, 222 insertions(+), 222 deletions(-)
diff --git a/src/app/tools/ratings/page.tsx b/src/app/tools/ratings/page.tsx
index f5367b956..9efb65575 100644
--- a/src/app/tools/ratings/page.tsx
+++ b/src/app/tools/ratings/page.tsx
@@ -204,21 +204,6 @@ export default function Page() {
return (
- setRowsPerPage(parseInt(value))}
- defaultValue={`${rowsPerPage}`}
- >
-
-
-
- {ROWS_OPTIONS.map((size) => (
-
- {size} per page
-
- ))}
-
-
-
-
-
-
-
-
-
-
-
- Player
-
-
-
-
-
-
-
-
+
+ Jump to:
+
+
+ Score
+
+
+
{
+ if (event.key === 'Enter') {
+ handleJumpToScore();
+ setJumpToScoreOpen(false);
+ }
+ }}
/>
-
-
- {searchResults?.map((player) => (
+
+
+ Cancel
+
+
+ Jump
+
+
+
+
+
+
+
+ Position
+
+
+
+
+ {
+ if (event.key === 'Enter') {
+ handleJumpToPosition();
+ setJumpToPositionOpen(false);
+ }
+ }}
+ />
+
+
+
+ Cancel
+
+
+ Jump
+
+
+
+
+
+
+
+ League
+
+
+
+
+ setJumpToLeague(parseInt(value))}
+ >
+
+
+
+ {ratingsInfo?.detail === undefined &&
+ ratingsInfo?.leagues.map(({ index, title }) => (
+
+ {title}
+
+ ))}
+
+
+
+
+
+ Cancel
+
{
- const playerIndex = players.data?.findIndex(
- (playerData) => playerData.id === player.account_id,
- );
- const playerPage = Math.floor(
- playerIndex! / rowsPerPage,
+ if (!ratingsInfo || ratingsInfo.detail || !players.data)
+ return;
+
+ const minScore =
+ LEAGUES[jumpToLeague - 1]?.minScore ?? Infinity;
+ const firstPlayerIndex = players.data.findIndex(
+ (player) => player.score < minScore,
);
- setPage(playerPage);
- setHighlightedPlayerId(player.account_id);
+ if (firstPlayerIndex === -1) return;
+
+ setPage(Math.floor(firstPlayerIndex / rowsPerPage));
+ setHighlightedPlayerId(
+ players.data[firstPlayerIndex].id,
+ );
}}
>
- {player.nickname}
+ Jump
- ))}
-
- {searchResults?.length === 0 && (
-
- No players found in leaderboard
-
- )}
+
+
+
+
+
+ Player
+
-
-
- Cancel
-
+
+
+
+
+
+
+
+
+
+
+
+ {searchResults?.map((player) => (
+
+ {
+ const playerIndex = players.data?.findIndex(
+ (playerData) => playerData.id === player.account_id,
+ );
+ const playerPage = Math.floor(
+ playerIndex! / rowsPerPage,
+ );
+
+ setPage(playerPage);
+ setHighlightedPlayerId(player.account_id);
+ }}
+ >
+ {player.nickname}
+
+
+ ))}
+
+ {searchResults?.length === 0 && (
+
+ No players found in leaderboard
+
+ )}
+
+
+
+
+ Cancel
+
+
-
-
-
+
+
+
diff --git a/src/components/PageWrapper.tsx b/src/components/PageWrapper.tsx
index 34ef80c03..666937af3 100644
--- a/src/components/PageWrapper.tsx
+++ b/src/components/PageWrapper.tsx
@@ -1,7 +1,7 @@
-import { Theme } from '@radix-ui/themes';
+import { Flex, Theme } from '@radix-ui/themes';
import { ComponentProps } from 'react';
-interface PageWrapperProps extends ComponentProps<'div'> {
+interface PageWrapperProps extends ComponentProps {
color?: ComponentProps['accentColor'];
}
@@ -12,20 +12,19 @@ export default function PageWrapper({
}: PageWrapperProps) {
return (
-
);