diff --git a/package.json b/package.json
index f41a666..35abf77 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-toast": "^1.2.1",
"@radix-ui/react-tooltip": "^1.1.2",
+ "@tanstack/react-query": "^5.55.4",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"dexie": "^4.0.8",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 252ec2b..316c12a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -35,6 +35,9 @@ dependencies:
'@radix-ui/react-tooltip':
specifier: ^1.1.2
version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1)(react@18.3.1)
+ '@tanstack/react-query':
+ specifier: ^5.55.4
+ version: 5.55.4(react@18.3.1)
class-variance-authority:
specifier: ^0.7.0
version: 0.7.0
@@ -872,6 +875,19 @@ packages:
tslib: 2.7.0
dev: false
+ /@tanstack/query-core@5.55.4:
+ resolution: {integrity: sha512-uoRqNnRfzOH4OMIoxj8E2+Us89UIGXfau981qYJWsNMkFS1GXR4UIyzUTVGq4N7SDLHgFPpo6IOazqUV5gkMZA==}
+ dev: false
+
+ /@tanstack/react-query@5.55.4(react@18.3.1):
+ resolution: {integrity: sha512-e3uX5XkLD9oTV66/VsVpkYz3Ds/ps/Yk+V5d89xthAbtNIKKBEm4FdNb9yISFzGEGezUzVO68qmfmiSrtScvsg==}
+ peerDependencies:
+ react: ^18 || ^19
+ dependencies:
+ '@tanstack/query-core': 5.55.4
+ react: 18.3.1
+ dev: false
+
/@types/json-schema@7.0.15:
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
dev: true
diff --git a/src/app/(pages)/page.tsx b/src/app/(pages)/page.tsx
index 3abd21a..607f00a 100644
--- a/src/app/(pages)/page.tsx
+++ b/src/app/(pages)/page.tsx
@@ -1,10 +1,5 @@
"use client";
-import { useLiveQuery } from "dexie-react-hooks";
-import useDatabase from "../hooks/use-database";
-
export default function Home() {
- const database = useDatabase();
- const settings = useLiveQuery(() => database.getSettings());
- return <>{settings?.playerId}>;
+ return <>home page>;
}
diff --git a/src/app/(pages)/player/[...slug]/page.tsx b/src/app/(pages)/player/[...slug]/page.tsx
index 0970025..54a92ef 100644
--- a/src/app/(pages)/player/[...slug]/page.tsx
+++ b/src/app/(pages)/player/[...slug]/page.tsx
@@ -1,38 +1,10 @@
import { scoresaberLeaderboard } from "@/app/common/leaderboard/impl/scoresaber";
import { ScoreSort } from "@/app/common/leaderboard/sort";
-import ScoreSaberPlayer from "@/app/common/leaderboard/types/scoresaber/scoresaber-player";
import { formatNumberWithCommas } from "@/app/common/number-utils";
-import CountryFlag from "@/app/components/country-flag";
-import ClaimProfile from "@/app/components/player/claim-profile";
-import PlayerSubName from "@/app/components/player/player-sub-name";
-import { Avatar, AvatarFallback, AvatarImage } from "@/app/components/ui/avatar";
+import PlayerData from "@/app/components/player/player-data";
import { format } from "@formkit/tempo";
-import { GlobeAmericasIcon } from "@heroicons/react/24/solid";
import { Metadata } from "next";
-
-const playerSubNames = [
- {
- icon: () => {
- return
#{formatNumberWithCommas(player.rank)}
; - }, - }, - { - icon: (player: ScoreSaberPlayer) => { - return#{formatNumberWithCommas(player.countryRank)}
; - }, - }, - { - render: (player: ScoreSaberPlayer) => { - return{formatNumberWithCommas(player.pp)}pp
; - }, - }, -]; +import { redirect } from "next/navigation"; type Props = { params: { @@ -76,49 +48,13 @@ export default async function Search({ params: { slug } }: Props) { console.log("sort", sort); console.log("page", page); + if (player == undefined) { + return redirect("/"); + } + return (idek mate
-{player.name}
-#{formatNumberWithCommas(player.rank)}
- -#{formatNumberWithCommas(player.countryRank)}
- -{formatNumberWithCommas(player.pp)}pp
-You
+ +#{formatNumberWithCommas(player.rank)}
; + }, + }, + { + icon: (player: ScoreSaberPlayer) => { + return#{formatNumberWithCommas(player.countryRank)}
; + }, + }, + { + render: (player: ScoreSaberPlayer) => { + return{formatNumberWithCommas(player.pp)}pp
; + }, + }, +]; + +type Props = { + player: ScoreSaberPlayer; +}; + +export default function PlayerHeader({ player }: Props) { + return ( +{player.name}
+