fix: alinhar janela de reabertura do portal com regras do backend
This commit is contained in:
parent
2b0b72cd8b
commit
aadf156ba5
2 changed files with 34 additions and 11 deletions
|
|
@ -147,20 +147,33 @@ export function TicketSummaryHeader({ ticket }: TicketHeaderProps) {
|
|||
: null
|
||||
const viewerId = convexUserId ?? null
|
||||
const viewerRole = (role ?? "").toLowerCase()
|
||||
const viewerEmail = (session?.user?.email ?? machineContext?.assignedUserEmail ?? "").trim().toLowerCase()
|
||||
const [status, setStatus] = useState<TicketStatus>(ticket.status)
|
||||
const reopenDeadline = ticket.reopenDeadline ?? null
|
||||
const isRequester = Boolean(ticket.requester?.id && viewerId && ticket.requester.id === viewerId)
|
||||
const reopenWindowActive = reopenDeadline ? reopenDeadline > Date.now() : false
|
||||
const rawReopenDeadline = ticket.reopenDeadline ?? null
|
||||
const fallbackClosedMs = ticket.closedAt?.getTime() ?? ticket.resolvedAt?.getTime() ?? null
|
||||
const DEFAULT_REOPEN_DAYS = 7
|
||||
const inferredDeadline = rawReopenDeadline
|
||||
? rawReopenDeadline
|
||||
: fallbackClosedMs
|
||||
? fallbackClosedMs + DEFAULT_REOPEN_DAYS * 24 * 60 * 60 * 1000
|
||||
: null
|
||||
const isRequesterById = Boolean(ticket.requester?.id && viewerId && ticket.requester.id === viewerId)
|
||||
const isRequesterByEmail = Boolean(
|
||||
viewerEmail && ticket.requester?.email && viewerEmail === ticket.requester.email.trim().toLowerCase(),
|
||||
)
|
||||
const isRequester = isRequesterById || isRequesterByEmail
|
||||
const reopenWindowActive = inferredDeadline ? inferredDeadline > Date.now() : true
|
||||
const canReopenTicket =
|
||||
status === "RESOLVED" && reopenWindowActive && (isStaff || viewerRole === "manager" || isRequester)
|
||||
const reopenDeadlineLabel = useMemo(() => {
|
||||
if (!reopenDeadline) return null
|
||||
const deadline = inferredDeadline ?? rawReopenDeadline
|
||||
if (!deadline) return null
|
||||
try {
|
||||
return new Date(reopenDeadline).toLocaleString("pt-BR")
|
||||
return new Date(deadline).toLocaleString("pt-BR")
|
||||
} catch {
|
||||
return null
|
||||
}
|
||||
}, [reopenDeadline])
|
||||
}, [inferredDeadline, rawReopenDeadline])
|
||||
const viewerEmail = session?.user?.email ?? machineContext?.assignedUserEmail ?? null
|
||||
const viewerAvatar = session?.user?.avatarUrl ?? null
|
||||
const viewerAgentMeta = useMemo(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue