From 44db9a301946a306df86a32356c2cfe924d8ef6e Mon Sep 17 00:00:00 2001 From: lorentz Date: Mon, 23 Mar 2026 16:15:05 -0400 Subject: [PATCH] feat: add description block to mobile ticket detail with View original toggle --- app/mobile/tickets/[id]/page.tsx | 39 +++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/app/mobile/tickets/[id]/page.tsx b/app/mobile/tickets/[id]/page.tsx index 5704c5f..7de406f 100644 --- a/app/mobile/tickets/[id]/page.tsx +++ b/app/mobile/tickets/[id]/page.tsx @@ -4,7 +4,7 @@ import { useEffect, useState, use } from 'react'; import { useRouter } from 'next/navigation'; import { ArrowLeft, RefreshCw, Clock, FileText, Timer, CheckCircle2, - ChevronDown, ChevronRight, User, Briefcase, AlertCircle, EyeOff, Eye, Mail, + ChevronDown, ChevronRight, User, Briefcase, AlertCircle, EyeOff, Eye, Mail, AlignLeft, Code2, } from 'lucide-react'; const PRIORITY_LABEL: Record = { @@ -212,6 +212,8 @@ export default function TicketTimeline({ params }: { params: Promise<{ id: strin const [error, setError] = useState(null); const [showSystem, setShowSystem] = useState(false); const [showInternal, setShowInternal] = useState(false); + const [descOpen, setDescOpen] = useState(true); + const [descRaw, setDescRaw] = useState(false); useEffect(() => { setLoading(true); @@ -279,6 +281,41 @@ export default function TicketTimeline({ params }: { params: Promise<{ id: strin

Hours logged

+ + {/* Description */} + {ticket.description && ( +
+ + {descOpen && ( +
+ {descRaw ? ( +
+                    {ticket.description.replace(/<[^>]+>/g, '').replace(/ /g, ' ').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').trim()}
+                  
+ ) : ( +

{renderContent(ticket.description)}

+ )} + +
+ )} +
+ )} {/* Timeline */}