feat: melhorias no vínculo de tickets e exportação

This commit is contained in:
Esdras Renan 2025-11-06 13:07:01 -03:00
parent 1b32638eb5
commit 9495b54a28
7 changed files with 226 additions and 16 deletions

View file

@ -131,7 +131,8 @@ export function NewTicketDialog({ triggerClassName }: { triggerClassName?: strin
},
mode: "onTouched",
})
const { convexUserId, isStaff, role } = useAuth()
const { convexUserId, isStaff, role, session, machineContext } = useAuth()
const sessionUser = session?.user ?? null
const queuesEnabled = Boolean(isStaff && convexUserId)
useDefaultQueues(DEFAULT_TENANT_ID)
const queuesRemote = useQuery(
@ -220,10 +221,28 @@ export function NewTicketDialog({ triggerClassName }: { triggerClassName?: strin
api.users.listCustomers,
directoryQueryEnabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : "skip"
)
const customers = useMemo(
const rawCustomers = useMemo(
() => (Array.isArray(customersRemote) ? (customersRemote as CustomerOption[]) : []),
[customersRemote]
)
const viewerCustomer = useMemo<CustomerOption | null>(() => {
if (!convexUserId || !sessionUser) return null
return {
id: convexUserId,
name: sessionUser.name ?? sessionUser.email,
email: sessionUser.email,
role: sessionUser.role ?? "customer",
companyId: machineContext?.companyId ?? null,
companyName: null,
companyIsAvulso: false,
avatarUrl: sessionUser.avatarUrl,
}
}, [convexUserId, sessionUser, machineContext?.companyId])
const customers = useMemo(() => {
if (!viewerCustomer) return rawCustomers
const exists = rawCustomers.some((customer) => customer.id === viewerCustomer.id)
return exists ? rawCustomers : [...rawCustomers, viewerCustomer]
}, [rawCustomers, viewerCustomer])
const [attachments, setAttachments] = useState<Array<{ storageId: string; name: string; size?: number; type?: string }>>([])
const [customersInitialized, setCustomersInitialized] = useState(false)
const attachmentsTotalBytes = useMemo(