Toggle date fields between relative and absolute on click
Some checks failed
Build & Push / Build Server (push) Successful in 34s
Build & Push / Build Client (push) Failing after 26s

Defaults to relative time (e.g. '5 hours ago'); clicking switches to
absolute timestamp and back.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Josh Wright
2026-03-31 12:10:12 -04:00
parent 2638eb226b
commit 618a9136f6

View File

@@ -86,6 +86,14 @@ export default function TicketDetail() {
const [editingStatus, setEditingStatus] = useState(false) const [editingStatus, setEditingStatus] = useState(false)
const [editingSeverity, setEditingSeverity] = useState(false) const [editingSeverity, setEditingSeverity] = useState(false)
const [editingAssignee, setEditingAssignee] = useState(false) const [editingAssignee, setEditingAssignee] = useState(false)
const [expandedDates, setExpandedDates] = useState<Set<string>>(new Set())
const toggleDate = (key: string) =>
setExpandedDates((prev) => {
const next = new Set(prev)
next.has(key) ? next.delete(key) : next.add(key)
return next
})
const isAdmin = authUser?.role === 'ADMIN' const isAdmin = authUser?.role === 'ADMIN'
@@ -530,17 +538,23 @@ export default function TicketDetail() {
{/* Dates */} {/* Dates */}
<div className="px-4 py-3 space-y-2.5"> <div className="px-4 py-3 space-y-2.5">
<SidebarField label="Created"> {[
<p className="text-xs text-gray-300">{format(new Date(ticket.createdAt), 'MMM d, yyyy HH:mm')}</p> { key: 'created', label: 'Created', date: ticket.createdAt },
</SidebarField> { key: 'modified', label: 'Modified', date: ticket.updatedAt },
<SidebarField label="Modified"> ...(ticket.resolvedAt ? [{ key: 'resolved', label: 'Resolved', date: ticket.resolvedAt }] : []),
<p className="text-xs text-gray-300">{formatDistanceToNow(new Date(ticket.updatedAt), { addSuffix: true })}</p> ].map(({ key, label, date }) => (
</SidebarField> <div key={key}>
{ticket.resolvedAt && ( <p className="text-xs font-medium text-gray-500 mb-1">{label}</p>
<SidebarField label="Resolved"> <button
<p className="text-xs text-gray-300">{format(new Date(ticket.resolvedAt), 'MMM d, yyyy HH:mm')}</p> onClick={() => toggleDate(key)}
</SidebarField> className="text-xs text-gray-300 hover:text-gray-100 transition-colors"
)} >
{expandedDates.has(key)
? format(new Date(date), 'MMM d, yyyy HH:mm')
: formatDistanceToNow(new Date(date), { addSuffix: true })}
</button>
</div>
))}
</div> </div>
{/* Assignee */} {/* Assignee */}