From 629ae95fc5ff487bc3480f5d9d899beca1b3f7ef Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 07:09:17 +0000 Subject: [PATCH] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/collections.$collectionId.tsx | 354 +++++++++++++---------- 1 file changed, 195 insertions(+), 159 deletions(-) diff --git a/src/routes/collections.$collectionId.tsx b/src/routes/collections.$collectionId.tsx index 3fd691a..40c6ca8 100644 --- a/src/routes/collections.$collectionId.tsx +++ b/src/routes/collections.$collectionId.tsx @@ -298,168 +298,204 @@ function CollectionDetailRoute() { All collections - {/* Workflow header */} - - -
-
- Workflow stage -
-
- {stages.map((s, i) => { - const isCurrent = s.key === collection.current_stage; - const isPast = i < currentStageIdx; - return ( -
- - {s.label} - - {i < stages.length - 1 && ( - - )} -
- ); - })} -
-
- -
-
- - {/* Tasks */} - - -
-

- - Tasks - {openTasks.length > 0 && ( - - {openTasks.length} open - - )} -

- -
- {tasks.length === 0 ? ( -

- No tasks yet. Escalate to populate the next stage's checklist, or - add one manually. -

- ) : ( -
- {[...openTasks, ...doneTasks].map((t) => { - const stageLabel = - stages.find((s) => s.key === t.stage_key)?.label; - const overdue = - !t.done && - t.due_date && - new Date(t.due_date) < new Date(new Date().toDateString()); - return ( -
- -
-
- {t.title} -
- {stageLabel && ( -
- {stageLabel} -
- )} -
- updateDueDate(t.id, e.target.value)} - /> - - -
- ); - })} -
+ {/* Tabs: Workflow (collections-specific) + same case tabs */} + + + Workflow + {collection.case && ( + <> + Litigation + Status log + Documents + Contacts + Time + Expenses + Invoices + Calls + Custom fields + )} -
-
+ - {/* Payment plans */} - + + {/* Workflow header */} + + +
+
+ Workflow stage +
+
+ {stages.map((s, i) => { + const isCurrent = s.key === collection.current_stage; + const isPast = i < currentStageIdx; + return ( +
+ + {s.label} + + {i < stages.length - 1 && ( + + )} +
+ ); + })} +
+
+ +
+
- {/* Ledger */} - navigate({ to: "/collections" })} - onChange={() => setReload((r) => r + 1)} - /> + {/* Tasks */} + + +
+

+ + Tasks + {openTasks.length > 0 && ( + + {openTasks.length} open + + )} +

+ +
+ {tasks.length === 0 ? ( +

+ No tasks yet. Escalate to populate the next stage's checklist, or + add one manually. +

+ ) : ( +
+ {[...openTasks, ...doneTasks].map((t) => { + const stageLabel = + stages.find((s) => s.key === t.stage_key)?.label; + const overdue = + !t.done && + t.due_date && + new Date(t.due_date) < new Date(new Date().toDateString()); + return ( +
+ +
+
+ {t.title} +
+ {stageLabel && ( +
+ {stageLabel} +
+ )} +
+ updateDueDate(t.id, e.target.value)} + /> + + +
+ ); + })} +
+ )} +
+
+ + {/* Payment plans */} + + + {/* Ledger */} + navigate({ to: "/collections" })} + onChange={() => setReload((r) => r + 1)} + /> +
+ + {collection.case && ( + <> + setReload((r) => r + 1)} /> + + + + {}} /> + + + + + + )} +