admin: remove 'Espaço (ID interno)' from Convites and improve filter bar alignment; tickets: fix running timer by optimistic updating start/pause times
This commit is contained in:
parent
a325d612cb
commit
7c3bf00790
2 changed files with 41 additions and 20 deletions
|
|
@ -430,6 +430,27 @@ export function TicketSummaryHeader({ ticket }: TicketHeaderProps) {
|
|||
} else {
|
||||
toast.success("Atendimento iniciado", { id: "work" })
|
||||
}
|
||||
// Otimização local: garantir startedAt correto imediatamente
|
||||
const startedAtMs = typeof result?.startedAt === "number" ? result.startedAt : Date.now()
|
||||
const sessionId = (result as { sessionId?: unknown })?.sessionId as Id<"ticketWorkSessions"> | undefined
|
||||
setWorkSummary((prev) => {
|
||||
const base: WorkSummarySnapshot = prev ?? {
|
||||
ticketId: ticket.id as Id<"tickets">,
|
||||
totalWorkedMs: 0,
|
||||
internalWorkedMs: 0,
|
||||
externalWorkedMs: 0,
|
||||
activeSession: null,
|
||||
}
|
||||
return {
|
||||
...base,
|
||||
activeSession: {
|
||||
id: (sessionId as Id<"ticketWorkSessions">) ?? (base.activeSession?.id as Id<"ticketWorkSessions">),
|
||||
agentId: convexUserId as Id<"users">,
|
||||
startedAt: startedAtMs,
|
||||
workType,
|
||||
},
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
const message = error instanceof Error ? error.message : "Não foi possível atualizar o atendimento"
|
||||
toast.error(message, { id: "work" })
|
||||
|
|
@ -454,6 +475,19 @@ export function TicketSummaryHeader({ ticket }: TicketHeaderProps) {
|
|||
toast.success("Atendimento pausado", { id: "work" })
|
||||
}
|
||||
setPauseDialogOpen(false)
|
||||
// Otimização local: aplicar duração retornada no total e limpar sessão ativa
|
||||
const delta = typeof (result as { durationMs?: unknown })?.durationMs === "number" ? (result as { durationMs?: number }).durationMs! : 0
|
||||
setWorkSummary((prev) => {
|
||||
if (!prev) return prev
|
||||
const workType = prev.activeSession?.workType ?? "INTERNAL"
|
||||
return {
|
||||
...prev,
|
||||
totalWorkedMs: prev.totalWorkedMs + delta,
|
||||
internalWorkedMs: prev.internalWorkedMs + (workType === "INTERNAL" ? delta : 0),
|
||||
externalWorkedMs: prev.externalWorkedMs + (workType === "EXTERNAL" ? delta : 0),
|
||||
activeSession: null,
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
const message = error instanceof Error ? error.message : "Não foi possível atualizar o atendimento"
|
||||
toast.error(message, { id: "work" })
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue