make score sort buttons prettier
All checks were successful
Deploy SSR / deploy (push) Successful in 1m11s

This commit is contained in:
Lee 2024-09-12 16:37:09 +01:00
parent 9e3c670a9e
commit b411554f75

@ -6,6 +6,7 @@ import ScoreSaberPlayer from "@/common/data-fetcher/types/scoresaber/scoresaber-
import ScoreSaberPlayerScoresPage from "@/common/data-fetcher/types/scoresaber/scoresaber-player-scores-page"; import ScoreSaberPlayerScoresPage from "@/common/data-fetcher/types/scoresaber/scoresaber-player-scores-page";
import { capitalizeFirstLetter } from "@/common/string-utils"; import { capitalizeFirstLetter } from "@/common/string-utils";
import useWindowDimensions from "@/hooks/use-window-dimensions"; import useWindowDimensions from "@/hooks/use-window-dimensions";
import { ClockIcon, TrophyIcon } from "@heroicons/react/24/solid";
import { useQuery } from "@tanstack/react-query"; import { useQuery } from "@tanstack/react-query";
import { motion, useAnimation } from "framer-motion"; import { motion, useAnimation } from "framer-motion";
import { useCallback, useEffect, useState } from "react"; import { useCallback, useEffect, useState } from "react";
@ -14,6 +15,19 @@ import Pagination from "../input/pagination";
import { Button } from "../ui/button"; import { Button } from "../ui/button";
import Score from "./score/score"; import Score from "./score/score";
const scoreSort = [
{
name: "Top",
value: ScoreSort.top,
icon: <TrophyIcon className="w-5 h-5" />,
},
{
name: "Recent",
value: ScoreSort.recent,
icon: <ClockIcon className="w-5 h-5" />,
},
];
type Props = { type Props = {
initialScoreData?: ScoreSaberPlayerScoresPage; initialScoreData?: ScoreSaberPlayerScoresPage;
player: ScoreSaberPlayer; player: ScoreSaberPlayer;
@ -77,13 +91,16 @@ export default function PlayerScores({ initialScoreData, player, sort, page }: P
return ( return (
<Card className="flex gap-4"> <Card className="flex gap-4">
<div className="flex items-center flex-row w-full gap-2 justify-center"> <div className="flex items-center flex-row w-full gap-2 justify-center">
{Object.values(ScoreSort).map((sortOption) => ( {Object.values(scoreSort).map((sortOption, index) => (
<Button <Button
variant={sortOption === currentSort ? "default" : "outline"} variant={sortOption.value === currentSort ? "default" : "outline"}
key={sortOption} key={index}
onClick={() => handleSortChange(sortOption)} onClick={() => handleSortChange(sortOption.value)}
size="sm"
className="flex items-center gap-1"
> >
{capitalizeFirstLetter(sortOption)} {sortOption.icon}
{`${capitalizeFirstLetter(sortOption.name)} Scores`}
</Button> </Button>
))} ))}
</div> </div>