'use client'; import { useLeaderboard } from '@/lib/hooks/use-leaderboard'; import { cn } from '@/lib/utils'; import { useMemo, useState } from 'react'; import AvatarComponent from './Avatar'; import Select from './Select'; const scoreColors = ['text-yellow-400', 'text-gray-400', 'text-orange-400']; export default function Leaderboard({ token }: { token: string }) { const { data, isLoading } = useLeaderboard({ token }); const [filter, setFilter] = useState(''); let options; if (data) { options = data .filter((score, index, self) => { return index === self.findIndex((t) => t.group === score.group) && score.group !== ''; }) .sort((a, b) => (a.group > b.group ? 1 : -1)) .map((score) => ({ value: score.group, title: score.group })); options.unshift({ value: '', title: 'Tous' }); options.push({ value: 'no-group', title: 'Sans groupe' }); } const filteredData = useMemo(() => { if (filter) { if (filter === 'no-group') { return data?.filter((score) => score.group === ''); } return data?.filter((score) => score.group === filter); } return data; }, [data, filter]); return (

Tableau des scores

Suivez la progression des élèves en direct

{(filteredData && (