ENCOA-172: Updated it so if an assignment has already been started, they can't start it again

This commit is contained in:
Tiago Ribeiro
2024-09-05 17:33:15 +01:00
parent e312af36bb
commit c7ff11d0fc

View File

@@ -29,6 +29,7 @@ import {BsArrowRepeat, BsBook, BsClipboard, BsFileEarmarkText, BsHeadphones, BsM
import {toast} from "react-toastify"; import {toast} from "react-toastify";
import {activeAssignmentFilter} from "@/utils/assignments"; import {activeAssignmentFilter} from "@/utils/assignments";
import ModuleBadge from "@/components/ModuleBadge"; import ModuleBadge from "@/components/ModuleBadge";
import useSessions from "@/hooks/useSessions";
interface Props { interface Props {
user: User; user: User;
@@ -38,6 +39,7 @@ interface Props {
export default function StudentDashboard({user, users, linkedCorporate}: Props) { export default function StudentDashboard({user, users, linkedCorporate}: Props) {
const {gradingSystem} = useGradingSystem(); const {gradingSystem} = useGradingSystem();
const {sessions} = useSessions(user.id);
const {data: stats} = useFilterRecordsByUser<Stat[]>(user.id, !user?.id); const {data: stats} = useFilterRecordsByUser<Stat[]>(user.id, !user?.id);
const {assignments, isLoading: isAssignmentsLoading, reload: reloadAssignments} = useAssignments({assignees: user?.id}); const {assignments, isLoading: isAssignmentsLoading, reload: reloadAssignments} = useAssignments({assignees: user?.id});
const {invites, isLoading: isInvitesLoading, reload: reloadInvites} = useInvites({to: user.id}); const {invites, isLoading: isInvitesLoading, reload: reloadInvites} = useInvites({to: user.id});
@@ -160,12 +162,20 @@ export default function StudentDashboard({user, users, linkedCorporate}: Props)
Start Start
</Button> </Button>
</div> </div>
<div
data-tip="You have already started this assignment!"
className={clsx(
"-md:hidden h-full w-full max-w-[50%] cursor-pointer",
sessions.filter((x) => x.assignment?.id === assignment.id).length > 0 && "tooltip",
)}>
<Button <Button
className="-md:hidden h-full w-full max-w-[50%] !rounded-xl" className={clsx("w-full h-full !rounded-xl")}
onClick={() => startAssignment(assignment)} onClick={() => startAssignment(assignment)}
variant="outline"> variant="outline"
disabled={sessions.filter((x) => x.assignment?.id === assignment.id).length > 0}>
Start Start
</Button> </Button>
</div>
</> </>
)} )}
{assignment.results.map((r) => r.user).includes(user.id) && ( {assignment.results.map((r) => r.user).includes(user.id) && (