From 61a86394eda43bc5b0abbfde3169a96762666ee6 Mon Sep 17 00:00:00 2001 From: Joao Ramos Date: Thu, 20 Jun 2024 23:20:52 +0100 Subject: [PATCH] Added persistance to the selected user record --- src/pages/record.tsx | 15 +++++++++++---- src/stores/recordStore.ts | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 src/stores/recordStore.ts diff --git a/src/pages/record.tsx b/src/pages/record.tsx index df14aa3d..39e3e5f6 100644 --- a/src/pages/record.tsx +++ b/src/pages/record.tsx @@ -25,7 +25,7 @@ import {shouldRedirectHome} from "@/utils/navigation.disabled"; import useAssignments from "@/hooks/useAssignments"; import {uuidv4} from "@firebase/util"; import {usePDFDownload} from "@/hooks/usePDFDownload"; - +import useRecordStore from "@/stores/recordStore"; export const getServerSideProps = withIronSessionSsr(({req, res}) => { const user = req.session.user; @@ -53,7 +53,8 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => { }, sessionOptions); export default function History({user}: {user: User}) { - const [statsUserId, setStatsUserId] = useState(user.id); + const [statsUserId, setStatsUserId] = useRecordStore((state) => [state.selectedUser, state.setSelectedUser]); + // const [statsUserId, setStatsUserId] = useState(user.id); const [groupedStats, setGroupedStats] = useState<{[key: string]: Stat[]}>(); const [filter, setFilter] = useState<"months" | "weeks" | "days" | "assignments">(); const {assignments} = useAssignments({}); @@ -89,6 +90,11 @@ export default function History({user}: {user: User}) { } }, [stats, isStatsLoading]); + useEffect(() => { + // just set this initially + if(!statsUserId) setStatsUserId(user.id); + }, []); + const toggleFilter = (value: "months" | "weeks" | "days" | "assignments") => { setFilter((prev) => (prev === value ? undefined : value)); }; @@ -310,6 +316,7 @@ export default function History({user}: {user: User}) { ); }; + const selectedUser = users.find((x) => x.id === statsUserId) || user; return ( <> @@ -329,7 +336,7 @@ export default function History({user}: {user: User}) { {(user.type === "developer" || user.type === "admin") && (