diff --git a/src/components/tickets/ticket-summary-header.tsx b/src/components/tickets/ticket-summary-header.tsx index 393c00b..012ee33 100644 --- a/src/components/tickets/ticket-summary-header.tsx +++ b/src/components/tickets/ticket-summary-header.tsx @@ -19,7 +19,7 @@ import { DeleteTicketDialog } from "@/components/tickets/delete-ticket-dialog" import { StatusSelect } from "@/components/tickets/status-select" import { CloseTicketDialog, type AdjustWorkSummaryResult } from "@/components/tickets/close-ticket-dialog" import { TicketCustomFieldsSection } from "@/components/tickets/ticket-custom-fields" -import { CheckCircle2 } from "lucide-react" +import { CheckCircle2, RotateCcw } from "lucide-react" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" @@ -147,7 +147,8 @@ export function TicketSummaryHeader({ ticket }: TicketHeaderProps) { : null const viewerId = convexUserId ?? null const viewerRole = (role ?? "").toLowerCase() - const viewerEmail = (session?.user?.email ?? machineContext?.assignedUserEmail ?? "").trim().toLowerCase() + const viewerEmailRaw = session?.user?.email ?? machineContext?.assignedUserEmail ?? null + const viewerEmail = (viewerEmailRaw ?? "").trim().toLowerCase() const [status, setStatus] = useState(ticket.status) const rawReopenDeadline = ticket.reopenDeadline ?? null const fallbackClosedMs = ticket.closedAt?.getTime() ?? ticket.resolvedAt?.getTime() ?? null @@ -174,19 +175,18 @@ export function TicketSummaryHeader({ ticket }: TicketHeaderProps) { return null } }, [inferredDeadline, rawReopenDeadline]) - const viewerEmail = session?.user?.email ?? machineContext?.assignedUserEmail ?? null const viewerAvatar = session?.user?.avatarUrl ?? null const viewerAgentMeta = useMemo( () => { if (!convexUserId) return null return { id: String(convexUserId), - name: agentName ?? viewerEmail ?? null, - email: viewerEmail, + name: agentName ?? viewerEmailRaw ?? null, + email: viewerEmailRaw, avatarUrl: viewerAvatar, } }, - [convexUserId, agentName, viewerEmail, viewerAvatar] + [convexUserId, agentName, viewerEmailRaw, viewerAvatar] ) useDefaultQueues(ticket.tenantId) const changeAssignee = useMutation(api.tickets.changeAssignee) @@ -1097,13 +1097,25 @@ export function TicketSummaryHeader({ ticket }: TicketHeaderProps) { return (
- + {status !== "RESOLVED" ? ( + + ) : canReopenTicket ? ( + + ) : null} {workSummary ? (