From c46508d2333f2967a9be8ac13e60a7423697906c Mon Sep 17 00:00:00 2001 From: Fhj0607 Date: Wed, 29 Apr 2026 11:06:20 +0200 Subject: [PATCH] implement x out of y progress text --- app/assignment/viewDetailsAssignment.tsx | 50 +++++++++++++++--------- app/subject/viewDetailsSubject.tsx | 21 +++++++--- 2 files changed, 46 insertions(+), 25 deletions(-) diff --git a/app/assignment/viewDetailsAssignment.tsx b/app/assignment/viewDetailsAssignment.tsx index 158c5c0..1f1ff43 100644 --- a/app/assignment/viewDetailsAssignment.tsx +++ b/app/assignment/viewDetailsAssignment.tsx @@ -132,13 +132,15 @@ export default function ViewDetailsAssignment() { ] ) } + + const completedTasks = tasks.filter((task) => task.isCompleted).length; + const totalTasks = tasks.length; + const remainingTasks = totalTasks - completedTasks; const progress = - tasks.length === 0 + totalTasks === 0 ? 0 - : Math.round( - (tasks.filter((task) => task.isCompleted).length / tasks.length) * 100 - ); + : Math.round((completedTasks / totalTasks) * 100); if (!assignment) { return ( @@ -234,24 +236,34 @@ export default function ViewDetailsAssignment() { - - - - Progress - - - {progress}% - - + + + + Task Progress + - - - + + {completedTasks}/{totalTasks} + + + + + + + {remainingTasks === 0 + ? 'All tasks complete' + : `${remainingTasks} task${remainingTasks === 1 ? '' : 's'} remaining`} + + + Last changed: {assignment.lastChanged} diff --git a/app/subject/viewDetailsSubject.tsx b/app/subject/viewDetailsSubject.tsx index e120454..6820a7c 100644 --- a/app/subject/viewDetailsSubject.tsx +++ b/app/subject/viewDetailsSubject.tsx @@ -188,14 +188,14 @@ export default function ViewDetailsSubject() { ); }; + const completedAssignments = assignments.filter((assignment) => assignment.isCompleted).length; + const totalAssignments = assignments.length; + const remainingAssignments = totalAssignments - completedAssignments; + const progress = assignments.length === 0 ? 0 - : Math.round( - (assignments.filter((assignment) => assignment.isCompleted).length / - assignments.length) * - 100 - ); + : Math.round((completedAssignments / totalAssignments) * 100); if (!subject) { return ( @@ -319,8 +319,9 @@ export default function ViewDetailsSubject() { Assignment Progress + - {progress}% + {completedAssignments}/{totalAssignments} @@ -333,6 +334,14 @@ export default function ViewDetailsSubject() { }} /> + + + {remainingAssignments === 0 + ? 'All assignments complete' + : `${remainingAssignments} assignment${ + remainingAssignments === 1 ? '' : 's' + } remaining`} +