Merge branch 'develop' into features-21-08-24

This commit is contained in:
Joao Ramos
2024-08-24 18:56:05 +01:00
25 changed files with 1069 additions and 745 deletions

View File

@@ -67,17 +67,17 @@ import {
} from "@/components/ui/popover";
import MasterStatistical from "./MasterStatistical";
import {
futureAssignmentFilter,
pastAssignmentFilter,
archivedAssignmentFilter,
activeAssignmentFilter
} from '@/utils/assignments';
futureAssignmentFilter,
pastAssignmentFilter,
archivedAssignmentFilter,
activeAssignmentFilter,
} from "@/utils/assignments";
import useUserBalance from "@/hooks/useUserBalance";
interface Props {
user: MasterCorporateUser;
}
type StudentPerformanceItem = User & {
corporate?: CorporateUser;
group?: Group;
@@ -439,12 +439,13 @@ export default function MasterCorporateDashboard({ user }: Props) {
const { users, reload } = useUsers();
const { codes } = useCodes(user.id);
const { groups } = useGroups({ admin: user.id, userType: user.type });
const { balance } = useUserBalance();
const masterCorporateUserGroups = [
const masterCorporateUserGroups = useMemo(() => [
...new Set(
groups.filter((u) => u.admin === user.id).flatMap((g) => g.participants)
),
];
], [groups, user.id]);
const corporateUserGroups = [
...new Set(groups.flatMap((g) => g.participants)),
@@ -744,7 +745,8 @@ export default function MasterCorporateDashboard({ user }: Props) {
</div>
<section className="flex flex-col gap-4">
<h2 className="text-2xl font-semibold">
Active Assignments ({assignments.filter(activeAssignmentFilter).length})
Active Assignments (
{assignments.filter(activeAssignmentFilter).length})
</h2>
<div className="flex flex-wrap gap-2">
{assignments.filter(activeAssignmentFilter).map((a) => (
@@ -759,7 +761,8 @@ export default function MasterCorporateDashboard({ user }: Props) {
</section>
<section className="flex flex-col gap-4">
<h2 className="text-2xl font-semibold">
Planned Assignments ({assignments.filter(futureAssignmentFilter).length})
Planned Assignments (
{assignments.filter(futureAssignmentFilter).length})
</h2>
<div className="flex flex-wrap gap-2">
<div
@@ -803,7 +806,8 @@ export default function MasterCorporateDashboard({ user }: Props) {
</section>
<section className="flex flex-col gap-4">
<h2 className="text-2xl font-semibold">
Archived Assignments ({assignments.filter(archivedAssignmentFilter).length})
Archived Assignments (
{assignments.filter(archivedAssignmentFilter).length})
</h2>
<div className="flex flex-wrap gap-2">
{assignments.filter(archivedAssignmentFilter).map((a) => (
@@ -903,7 +907,7 @@ export default function MasterCorporateDashboard({ user }: Props) {
<IconCard
Icon={BsPersonCheck}
label="User Balance"
value={`${codes.length}/${
value={`${balance}/${
user.corporateInformation?.companyInformation?.userAmount || 0
}`}
color="purple"
@@ -1020,6 +1024,12 @@ export default function MasterCorporateDashboard({ user }: Props) {
{selectedUser && (
<div className="w-full flex flex-col gap-8">
<UserCard
maxUserAmount={
user.type === "mastercorporate"
? (user.corporateInformation?.companyInformation
?.userAmount || 0) - balance
: undefined
}
loggedInUser={user}
onClose={(shouldReload) => {
setSelectedUser(undefined);