@@ -8,7 +8,7 @@ import { useMediaQuery } from "usehooks-ts";
88import { cn } from "@/lib/utils" ;
99
1010import { DesktopLeaderboard , MobileLeaderboard } from "./components" ;
11- import { LeaderboardProps } from "./types" ;
11+ import { LeaderboardProps , SortConfig } from "./types" ;
1212
1313const leaderboardVariants = tv ( {
1414 base : "leaderboard-container" ,
@@ -44,7 +44,7 @@ const leaderboardVariants = tv({
4444
4545interface LeaderboardPropsWithVariants
4646 extends VariantProps < typeof leaderboardVariants > ,
47- Omit < LeaderboardProps , "expandedProject" | "setExpandedProject" | "paginationProps" > { }
47+ Omit < LeaderboardProps , "expandedProject" | "setExpandedProject" | "paginationProps" | "sortConfig" | "setSortConfig" > { }
4848
4949export const Leaderboard = ( { projects, metrics, ...props } : LeaderboardPropsWithVariants ) => {
5050 const leaderboardClassNames = leaderboardVariants ( {
@@ -53,6 +53,7 @@ export const Leaderboard = ({ projects, metrics, ...props }: LeaderboardPropsWit
5353 const [ currentPage , setCurrentPage ] = useState ( 1 ) ;
5454 const [ itemsPerPage , setItemsPerPage ] = useState ( 10 ) ;
5555 const [ expandedProject , setExpandedProject ] = useState < number | null > ( null ) ;
56+ const [ sortConfig , setSortConfig ] = useState < SortConfig > ( { key : "rank" , direction : "asc" } ) ;
5657 const isDesktopView = useMediaQuery ( "(min-width: 768px)" ) ;
5758
5859 const totalProjects = Object . keys ( projects ) . length ;
@@ -115,6 +116,8 @@ export const Leaderboard = ({ projects, metrics, ...props }: LeaderboardPropsWit
115116 expandedProject = { expandedProject }
116117 setExpandedProject = { setExpandedProject }
117118 parentWidth = { parentWidth }
119+ sortConfig = { sortConfig }
120+ setSortConfig = { setSortConfig }
118121 />
119122 ) : (
120123 < MobileLeaderboard
@@ -130,6 +133,8 @@ export const Leaderboard = ({ projects, metrics, ...props }: LeaderboardPropsWit
130133 } }
131134 expandedProject = { expandedProject }
132135 setExpandedProject = { setExpandedProject }
136+ sortConfig = { sortConfig }
137+ setSortConfig = { setSortConfig }
133138 />
134139 ) }
135140 </ div >
0 commit comments