From 92ab0601aec999db7bec4412c0a228849b7a4fd0 Mon Sep 17 00:00:00 2001 From: Krao Hasanee Date: Fri, 27 Mar 2026 00:18:28 -0400 Subject: [PATCH] Group amendments inside their parent version box in timeline Co-Authored-By: Claude Sonnet 4.6 --- src/pages/client/RequestDetail.jsx | 49 +++++++++++++++++++----------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/src/pages/client/RequestDetail.jsx b/src/pages/client/RequestDetail.jsx index e5ff26d..47b9d65 100755 --- a/src/pages/client/RequestDetail.jsx +++ b/src/pages/client/RequestDetail.jsx @@ -305,35 +305,50 @@ export default function RequestDetail() {
Version History
- {submissions.map(sub => { - const delivery = sub.delivery; + {Object.values( + submissions.reduce((groups, sub) => { + const key = sub.version_number; + if (!groups[key]) groups[key] = []; + groups[key].push(sub); + return groups; + }, {}) + ).map(group => { + const primary = group.find(s => s.type !== 'amendment') || group[0]; + const amendments = group.filter(s => s.type === 'amendment'); + const delivery = primary.delivery; return ( -
- {sub.type === 'amendment' && ( -
- Amended Request -
- )} +
- {sub.type !== 'amendment' && ( -
{vLabel(sub.version_number - 1)}
- )} - +
{vLabel(primary.version_number - 1)}
+
- {sub.submitted_by_name && {sub.submitted_by_name} · } - {new Date(sub.submitted_at).toLocaleDateString()} + {primary.submitted_by_name && {primary.submitted_by_name} · } + {new Date(primary.submitted_at).toLocaleDateString()}
-

{sub.service_type}

-

{sub.deadline || '—'}

+

{primary.service_type}

+

{primary.deadline || '—'}

-

{sub.description}

+

{primary.description}

+ + {amendments.map(amendment => ( +
+
+ Amended Request +
+
+ {amendment.submitted_by_name} · {new Date(amendment.submitted_at).toLocaleDateString()} +
+

{amendment.description}

+
+ ))} + {delivery && delivery.files && delivery.files.length > 0 && (