From 0f0b7748d7756d23fec02836f7c8b228e8e246fc Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Mon, 2 Oct 2023 10:23:33 +0100 Subject: [PATCH] Updated the stats and record page --- src/pages/record.tsx | 40 +++++++++++++++++------------ src/pages/stats.tsx | 61 ++++++++++++++++++++++++-------------------- 2 files changed, 56 insertions(+), 45 deletions(-) diff --git a/src/pages/record.tsx b/src/pages/record.tsx index e32abc99..9139fcc5 100644 --- a/src/pages/record.tsx +++ b/src/pages/record.tsx @@ -19,6 +19,8 @@ import Layout from "@/components/High/Layout"; import clsx from "clsx"; import {calculateBandScore} from "@/utils/score"; import {BsBook, BsHeadphones, BsMegaphone, BsPen} from "react-icons/bs"; +import Select from "react-select"; +import useGroups from "@/hooks/useGroups"; export const getServerSideProps = withIronSessionSsr(({req, res}) => { const user = req.session.user; @@ -40,12 +42,13 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => { }, sessionOptions); export default function History({user}: {user: User}) { - const [selectedUser, setSelectedUser] = useState(user); + const [statsUserId, setStatsUserId] = useState(user.id); const [groupedStats, setGroupedStats] = useState<{[key: string]: Stat[]}>(); const [filter, setFilter] = useState<"months" | "weeks" | "days">(); - const {users, isLoading: isUsersLoading} = useUsers(); - const {stats, isLoading: isStatsLoading} = useStats(selectedUser?.id); + const {users} = useUsers(); + const {stats, isLoading: isStatsLoading} = useStats(statsUserId); + const {groups} = useGroups(user.id); const setExams = useExamStore((state) => state.setExams); const setShowSolutions = useExamStore((state) => state.setShowSolutions); @@ -218,22 +221,25 @@ export default function History({user}: {user: User}) { {user && (
-
- {!isUsersLoading && user.type !== "student" && ( - <> - - +
+ {(user.type === "developer" || user.type === "owner") && ( + groups.flatMap((y) => y.participants).includes(x.id)) + .map((x) => ({value: x.id, label: `${x.name} - ${x.email}`}))} + defaultValue={{value: user.id, label: `${user.name} - ${user.email}`}} + onChange={(value) => setStatsUserId(value?.value)} + /> )}
-
+