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

@@ -54,11 +54,12 @@ import Checkbox from "@/components/Low/Checkbox";
import List from "@/components/List";
import { getUserCompanyName } from "@/resources/user";
import {
futureAssignmentFilter,
pastAssignmentFilter,
archivedAssignmentFilter,
activeAssignmentFilter
} from '@/utils/assignments';
futureAssignmentFilter,
pastAssignmentFilter,
archivedAssignmentFilter,
activeAssignmentFilter,
} from "@/utils/assignments";
import useUserBalance from "@/hooks/useUserBalance";
interface Props {
user: CorporateUser;
@@ -230,7 +231,6 @@ export default function CorporateDashboard({ user }: Props) {
useState<CorporateUser>();
const [selectedAssignment, setSelectedAssignment] = useState<Assignment>();
const [isCreatingAssignment, setIsCreatingAssignment] = useState(false);
const [userBalance, setUserBalance] = useState(0);
const { stats } = useStats();
const { users, reload, isLoading } = useUsers();
@@ -241,6 +241,7 @@ export default function CorporateDashboard({ user }: Props) {
isLoading: isAssignmentsLoading,
reload: reloadAssignments,
} = useAssignments({ corporate: user.id });
const { balance } = useUserBalance();
const appendUserFilters = useFilterStore((state) => state.appendUserFilter);
const router = useRouter();
@@ -249,19 +250,6 @@ export default function CorporateDashboard({ user }: Props) {
setShowModal(!!selectedUser && page === "");
}, [selectedUser, page]);
useEffect(() => {
const relatedGroups = groups.filter(
(x) =>
x.name === "Students" || x.name === "Teachers" || x.name === "Corporate"
);
const usersInGroups = relatedGroups.map((x) => x.participants).flat();
const filteredCodes = codes.filter(
(x) => !x.userId || !usersInGroups.includes(x.userId)
);
setUserBalance(usersInGroups.length + filteredCodes.length);
}, [codes, groups]);
useEffect(() => {
// in this case it fetches the master corporate account
getUserCorporate(user.id).then(setCorporateUserToShow);
@@ -436,7 +424,8 @@ export default function CorporateDashboard({ 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) => (
@@ -451,7 +440,8 @@ export default function CorporateDashboard({ 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
@@ -495,7 +485,8 @@ export default function CorporateDashboard({ 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) => (
@@ -640,7 +631,7 @@ export default function CorporateDashboard({ user }: Props) {
<IconCard
Icon={BsPersonCheck}
label="User Balance"
value={`${userBalance}/${
value={`${balance}/${
user.corporateInformation?.companyInformation?.userAmount || 0
}`}
color="purple"