From f93e738d36909124924738a94f425d473cf0945c Mon Sep 17 00:00:00 2001 From: Joyelle Ndagijimana Date: Sun, 11 May 2025 16:36:07 +0200 Subject: [PATCH] feat: opdrachten met dichtste deadlines staan van boven --- .../src/views/assignments/UserAssignments.vue | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/assignments/UserAssignments.vue b/frontend/src/views/assignments/UserAssignments.vue index 5a15ab0e..a2dc84d7 100644 --- a/frontend/src/views/assignments/UserAssignments.vue +++ b/frontend/src/views/assignments/UserAssignments.vue @@ -32,6 +32,7 @@ const assignments = asyncComputed(async () => { const classes = classesQueryResults?.data?.value?.classes; if (!classes) return []; + const result = await Promise.all( (classes as ClassDTO[]).map(async (cls) => { const { assignments } = await classController.getAssignments(cls.id); @@ -48,9 +49,25 @@ }), ); - return result.flat(); + // Order the assignments by deadline + return result + .flat() + .sort((a, b) => { + const now = Date.now(); + const aTime = new Date(a.deadline).getTime(); + const bTime = new Date(b.deadline).getTime(); + + const aIsPast = aTime < now; + const bIsPast = bTime < now; + + if (aIsPast && !bIsPast) return 1; + if (!aIsPast && bIsPast) return -1; + + return aTime - bTime; + }); }, []); + async function goToCreateAssignment(): Promise { await router.push("/assignment/create"); }