Added persistance to the selected user record
This commit is contained in:
@@ -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<string | undefined>(user.id);
|
||||
const [statsUserId, setStatsUserId] = useRecordStore((state) => [state.selectedUser, state.setSelectedUser]);
|
||||
// const [statsUserId, setStatsUserId] = useState<string | undefined>(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 (
|
||||
<>
|
||||
<Head>
|
||||
@@ -329,7 +336,7 @@ export default function History({user}: {user: User}) {
|
||||
{(user.type === "developer" || user.type === "admin") && (
|
||||
<Select
|
||||
options={users.map((x) => ({value: x.id, label: `${x.name} - ${x.email}`}))}
|
||||
defaultValue={{value: user.id, label: `${user.name} - ${user.email}`}}
|
||||
value={{value: selectedUser.id, label: `${selectedUser.name} - ${selectedUser.email}`}}
|
||||
onChange={(value) => setStatsUserId(value?.value)}
|
||||
styles={{
|
||||
menuPortal: (base) => ({...base, zIndex: 9999}),
|
||||
@@ -346,7 +353,7 @@ export default function History({user}: {user: User}) {
|
||||
options={users
|
||||
.filter((x) => 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}`}}
|
||||
value={{value: selectedUser.id, label: `${selectedUser.name} - ${selectedUser.email}`}}
|
||||
onChange={(value) => setStatsUserId(value?.value)}
|
||||
styles={{
|
||||
menuPortal: (base) => ({...base, zIndex: 9999}),
|
||||
|
||||
Reference in New Issue
Block a user