ux(portal): simplificar exibicao do botao de reabertura
This commit is contained in:
parent
2468892d77
commit
8b905dc467
1 changed files with 1 additions and 14 deletions
|
|
@ -276,16 +276,7 @@ export function PortalTicketDetail({ ticketId }: PortalTicketDetailProps) {
|
||||||
)
|
)
|
||||||
|
|
||||||
const viewerId = convexUserId ?? null
|
const viewerId = convexUserId ?? null
|
||||||
const viewerRole = (role ?? "").toLowerCase()
|
|
||||||
const viewerEmail = (session?.user.email ?? machineContext?.assignedUserEmail ?? "")
|
|
||||||
.trim()
|
|
||||||
.toLowerCase()
|
|
||||||
const rawReopenDeadline = ticket?.reopenDeadline ?? null
|
const rawReopenDeadline = ticket?.reopenDeadline ?? null
|
||||||
const reopenedAt = ticket?.reopenedAt ?? null
|
|
||||||
const requesterEmail = (ticket?.requester?.email ?? "").trim().toLowerCase()
|
|
||||||
const isRequesterById = Boolean(ticket?.requester?.id && viewerId && ticket.requester.id === viewerId)
|
|
||||||
const isRequesterByEmail = Boolean(viewerEmail && requesterEmail && viewerEmail === requesterEmail)
|
|
||||||
const isRequester = isRequesterById || isRequesterByEmail
|
|
||||||
|
|
||||||
const DEFAULT_REOPEN_DAYS = 7
|
const DEFAULT_REOPEN_DAYS = 7
|
||||||
const fallbackClosedMs = ticket?.closedAt?.getTime() ?? ticket?.resolvedAt?.getTime() ?? null
|
const fallbackClosedMs = ticket?.closedAt?.getTime() ?? ticket?.resolvedAt?.getTime() ?? null
|
||||||
|
|
@ -295,11 +286,7 @@ export function PortalTicketDetail({ ticketId }: PortalTicketDetailProps) {
|
||||||
? fallbackClosedMs + DEFAULT_REOPEN_DAYS * 24 * 60 * 60 * 1000
|
? fallbackClosedMs + DEFAULT_REOPEN_DAYS * 24 * 60 * 60 * 1000
|
||||||
: null
|
: null
|
||||||
const reopenWindowActive = inferredDeadline ? inferredDeadline > Date.now() : true
|
const reopenWindowActive = inferredDeadline ? inferredDeadline > Date.now() : true
|
||||||
const canReopenTicket =
|
const canReopenTicket = !!ticket && ticket.status === "RESOLVED" && reopenWindowActive
|
||||||
!!ticket &&
|
|
||||||
ticket.status === "RESOLVED" &&
|
|
||||||
reopenWindowActive &&
|
|
||||||
(isStaff || viewerRole === "manager" || isRequester)
|
|
||||||
const reopenDeadlineLabel = useMemo(() => {
|
const reopenDeadlineLabel = useMemo(() => {
|
||||||
const deadline = inferredDeadline ?? rawReopenDeadline
|
const deadline = inferredDeadline ?? rawReopenDeadline
|
||||||
if (!deadline) return null
|
if (!deadline) return null
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue