diff --git a/src/components/StatusBadge.jsx b/src/components/StatusBadge.jsx index 4a113c1..c7a87ac 100755 --- a/src/components/StatusBadge.jsx +++ b/src/components/StatusBadge.jsx @@ -6,6 +6,7 @@ const labels = { client_approved: 'Client Approved', active: 'Active', completed: 'Completed', + superseded: 'Superseded', initial: 'Initial', revision: 'Revision', amendment: 'Amended', diff --git a/src/pages/team/Requests.jsx b/src/pages/team/Requests.jsx index f3ccfeb..7e24223 100755 --- a/src/pages/team/Requests.jsx +++ b/src/pages/team/Requests.jsx @@ -98,20 +98,32 @@ export default function Requests() { return bMax - aMax; }); + // Build a map of max version per task so we can flag superseded groups + const maxVersionPerTask = {}; + Object.values(groupMap).forEach(g => { + const p = g.find(s => s.type !== 'amendment') || g[0]; + const cur = maxVersionPerTask[p.task_id] || 0; + if (p.version_number > cur) maxVersionPerTask[p.task_id] = p.version_number; + }); + return groups.map(group => { const primary = group.find(s => s.type !== 'amendment') || group[0]; const amendments = group.filter(s => s.type === 'amendment'); const task = tasks.find(t => t.id === primary.task_id); const project = projects.find(p => p.id === task?.project_id); const company = companies.find(co => co.id === project?.company_id); + const isSuperseded = primary.version_number < maxVersionPerTask[primary.task_id]; return ( -
+
{primary.service_type} + {isSuperseded && ( + Superseded + )}
From {primary.submitted_by_name} @@ -122,7 +134,10 @@ export default function Requests() {
- + {isSuperseded + ? Completed + : + } {task && View Job}