From 402de827500ecc0e6b1744bedaebf1405d3cf17d Mon Sep 17 00:00:00 2001 From: Josh Wright Date: Tue, 31 Mar 2026 12:03:39 -0400 Subject: [PATCH] Unify sidebar fields: all editable fields use full-width clickable blocks - Status and Severity now match CTI style (full-width button, hover bg, no chevron) - Remove 'Change routing' hint text from CTI block - Replace Assignee dropdown with clickable block that opens a modal picker with avatars - Add Assignee modal consistent with Status/Severity modal pattern Co-Authored-By: Claude Sonnet 4.6 --- client/src/pages/TicketDetail.tsx | 126 ++++++++++++++++++------------ 1 file changed, 78 insertions(+), 48 deletions(-) diff --git a/client/src/pages/TicketDetail.tsx b/client/src/pages/TicketDetail.tsx index 8a05e6a..dca6046 100644 --- a/client/src/pages/TicketDetail.tsx +++ b/client/src/pages/TicketDetail.tsx @@ -87,6 +87,7 @@ export default function TicketDetail() { const [pendingCTI, setPendingCTI] = useState({ categoryId: '', typeId: '', itemId: '' }) const [editingStatus, setEditingStatus] = useState(false) const [editingSeverity, setEditingSeverity] = useState(false) + const [editingAssignee, setEditingAssignee] = useState(false) const isAdmin = authUser?.role === 'ADMIN' @@ -492,33 +493,28 @@ export default function TicketDetail() {

Ticket Summary

- {/* Status + Severity */} -
- - - + {/* Status */} + - - - -
+ {/* Severity */} + {/* CTI — one clickable unit */} {/* Dates */} @@ -550,33 +545,29 @@ export default function TicketDetail() { )} - {/* People */} -
- - - {ticket.assignee && ( -
- - {ticket.assignee.displayName} -
- )} -
- - + {/* Assignee */} + + + {/* Requester */} +
+

Requester

+
+ + {ticket.createdBy.displayName} +
@@ -653,6 +644,45 @@ export default function TicketDetail() { )} + {editingAssignee && ( + setEditingAssignee(false)}> +
+ + {agentUsers.map((u) => ( + + ))} +
+
+ )} + {reroutingCTI && ( setReroutingCTI(false)} size="lg">