From 4ca1c599fd75b700392d66c90c794dbb624fec5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o?= <43091603+glazk0@users.noreply.github.com> Date: Mon, 6 Mar 2023 17:51:51 +0100 Subject: [PATCH] added somes ISR & loading stuff --- app/dashboard/leaderboard/page.tsx | 66 +----------------------- app/dashboard/puzzles/[id]/page.tsx | 4 +- app/dashboard/puzzles/page.tsx | 4 +- lib/hooks/use-leaderboard.ts | 6 +++ lib/puzzles.ts | 2 - middleware.ts | 2 - styles/globals.css | 1 - tailwind.config.js | 9 +--- tsconfig.json | 1 + ui/Button.tsx | 2 +- ui/Input.tsx | 2 +- ui/Leaderboard.tsx | 79 +++++++++++++++++++++++++++++ ui/Puzzle.tsx | 9 +++- ui/Puzzles.tsx | 78 +++++++++++++++++++--------- 14 files changed, 158 insertions(+), 107 deletions(-) create mode 100644 lib/hooks/use-leaderboard.ts create mode 100644 ui/Leaderboard.tsx diff --git a/app/dashboard/leaderboard/page.tsx b/app/dashboard/leaderboard/page.tsx index f2bc96a..6e83730 100644 --- a/app/dashboard/leaderboard/page.tsx +++ b/app/dashboard/leaderboard/page.tsx @@ -1,22 +1,4 @@ -import { getScores } from '@/lib/leaderboard'; -import { cn } from '@/lib/utils'; -import Avatar from '@/ui/Avatar'; -import Select from '@/ui/Select'; - -// TODO: Generate this later -const scoreColors = ['text-yellow-400', 'text-gray-400', 'text-orange-400']; - -// TODO: Generate this later -const options = [ - { value: '1i1', title: '1I1' }, - { value: '1i2', title: '1I2' }, - { value: '1i3', title: '1I3' }, - { value: '1i4', title: '1I4' }, - { value: '1i5', title: '1I5' }, - { value: '1i6', title: '1I6' }, - { value: '1i7', title: '1I7' }, - { value: '1i8', title: '1I8' } -]; +import Leaderboard from '@/ui/Leaderboard'; export const metadata = { title: 'Tableau des scores - Peer-at Code', @@ -24,49 +6,5 @@ export const metadata = { }; export default async function Page() { - // TODO: CSR fetch data for leaderboard (useSWR) to make it more reactive - const data = await getScores(); - return ( -
-
-
-
-
-

Tableau des scores

-

- Suivez la progression des élèves en direct -

-
- diff --git a/ui/Leaderboard.tsx b/ui/Leaderboard.tsx new file mode 100644 index 0000000..504f4a1 --- /dev/null +++ b/ui/Leaderboard.tsx @@ -0,0 +1,79 @@ +'use client'; + +import { useLeaderboard } from '@/lib/hooks/use-leaderboard'; +import { cn } from '@/lib/utils'; +import Avatar from './Avatar'; +import Select from './Select'; + +// TODO: Generate this later +const scoreColors = ['text-yellow-400', 'text-gray-400', 'text-orange-400']; + +// TODO: Generate this later +export const options = [ + { value: '1i1', title: '1I1' }, + { value: '1i2', title: '1I2' }, + { value: '1i3', title: '1I3' }, + { value: '1i4', title: '1I4' }, + { value: '1i5', title: '1I5' }, + { value: '1i6', title: '1I6' }, + { value: '1i7', title: '1I7' }, + { value: '1i8', title: '1I8' } +]; + +export default function Leaderboard() { + const { data, isLoading } = useLeaderboard(); + return ( +
+
+
+
+
+

Tableau des scores

+

+ Suivez la progression des élèves en direct +

+
+