();
- const {users, reload, isLoading} = useUsers();
const {groups} = useGroups({admin: user.id});
const {assignments, isLoading: isAssignmentsLoading, reload: reloadAssignments} = useAssignments({corporate: user.id});
const {balance} = useUserBalance();
+ const {users: students, reload: reloadStudents, isLoading: isStudentsLoading} = useUsers({type: "student"});
+ const {users: teachers, reload: reloadTeachers, isLoading: isTeachersLoading} = useUsers({type: "teacher"});
+
const appendUserFilters = useFilterStore((state) => state.appendUserFilter);
const router = useRouter();
@@ -173,26 +175,21 @@ export default function CorporateDashboard({user, linkedCorporate}: Props) {
const assignmentsUsers = useMemo(
() =>
- users.filter(
- (x) =>
- (x.type === "student" || x.type === "teacher") &&
- (!!selectedUser
- ? groups
- .filter((g) => g.admin === selectedUser.id)
- .flatMap((g) => g.participants)
- .includes(x.id) || false
- : groups.flatMap((g) => g.participants).includes(x.id)),
+ [...teachers, ...students].filter((x) =>
+ !!selectedUser
+ ? groups
+ .filter((g) => g.admin === selectedUser.id)
+ .flatMap((g) => g.participants)
+ .includes(x.id) || false
+ : groups.flatMap((g) => g.participants).includes(x.id),
),
- [groups, users, selectedUser],
+ [groups, teachers, students, selectedUser],
);
useEffect(() => {
setShowModal(!!selectedUser && router.asPath === "/#");
}, [selectedUser, router.asPath]);
- const studentFilter = (user: User) => user.type === "student" && groups.flatMap((g) => g.participants).includes(user.id);
- const teacherFilter = (user: User) => user.type === "teacher" && groups.flatMap((g) => g.participants).includes(user.id);
-
const getStatsByStudent = (user: User) => stats.filter((s) => s.user === user.id);
const UserDisplay = (displayUser: User) => (
@@ -228,13 +225,11 @@ export default function CorporateDashboard({user, linkedCorporate}: Props) {
};
const StudentPerformancePage = () => {
- const students = users
- .filter((x) => x.type === "student" && groups.flatMap((g) => g.participants).includes(x.id))
- .map((u) => ({
- ...u,
- group: groups.find((x) => x.participants.includes(u.id))?.name || "N/A",
- corporateName: getUserCompanyName(u, users, groups),
- }));
+ const performanceStudents = students.map((u) => ({
+ ...u,
+ group: groups.find((x) => x.participants.includes(u.id))?.name || "N/A",
+ corporateName: getUserCompanyName(user, [], groups),
+ }));
return (
<>
@@ -246,13 +241,13 @@ export default function CorporateDashboard({user, linkedCorporate}: Props) {
Back
Reload
-
+
-