diff --git a/src/app/tickets/new/page.tsx b/src/app/tickets/new/page.tsx index b0fc556..8a18f66 100644 --- a/src/app/tickets/new/page.tsx +++ b/src/app/tickets/new/page.tsx @@ -46,10 +46,10 @@ export default function NewTicketPage() { const router = useRouter() const { convexUserId, isStaff, role } = useAuth() const queuesEnabled = Boolean(isStaff && convexUserId) - const queueArgs = queuesEnabled - ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } - : undefined - const queuesRemote = useQuery(queuesEnabled ? api.queues.summary : undefined, queueArgs) + const queuesRemote = useQuery( + api.queues.summary, + queuesEnabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : "skip" + ) const queues = useMemo( () => (Array.isArray(queuesRemote) ? (queuesRemote as TicketQueueSummary[]) : []), [queuesRemote] @@ -63,10 +63,10 @@ export default function NewTicketPage() { ) const directoryQueryEnabled = queuesEnabled && Boolean(convexUserId) - const companiesArgs = directoryQueryEnabled - ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } - : undefined - const companiesRemote = useQuery(directoryQueryEnabled ? api.companies.list : undefined, companiesArgs) + const companiesRemote = useQuery( + api.companies.list, + directoryQueryEnabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : "skip" + ) const companies = useMemo( () => (Array.isArray(companiesRemote) ? companiesRemote : []).map((company) => ({ @@ -77,10 +77,10 @@ export default function NewTicketPage() { [companiesRemote] ) - const customersArgs = directoryQueryEnabled - ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } - : undefined - const customersRemote = useQuery(directoryQueryEnabled ? api.users.listCustomers : undefined, customersArgs) + const customersRemote = useQuery( + api.users.listCustomers, + directoryQueryEnabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : "skip" + ) const customers = useMemo( () => (Array.isArray(customersRemote) ? (customersRemote as CustomerOption[]) : []), [customersRemote] diff --git a/src/components/admin/admin-users-manager.tsx b/src/components/admin/admin-users-manager.tsx index 26b33d9..cfe5f14 100644 --- a/src/components/admin/admin-users-manager.tsx +++ b/src/components/admin/admin-users-manager.tsx @@ -375,8 +375,8 @@ export function AdminUsersManager({ linkedUsers?: Array<{ id: string; email: string; name: string }> } const machinesList = useQuery( - convexUserId ? api.machines.listByTenant : undefined, - convexUserId ? { tenantId: defaultTenantId, includeMetadata: true } : undefined + api.machines.listByTenant, + convexUserId ? { tenantId: defaultTenantId, includeMetadata: true } : "skip" ) as MachinesListItem[] | undefined const machinesByUserEmail = useMemo(() => { diff --git a/src/components/admin/alerts/admin-alerts-manager.tsx b/src/components/admin/alerts/admin-alerts-manager.tsx index c6d0bf6..a443a8d 100644 --- a/src/components/admin/alerts/admin-alerts-manager.tsx +++ b/src/components/admin/alerts/admin-alerts-manager.tsx @@ -25,7 +25,7 @@ export function AdminAlertsManager() { }, [range]) const alertsRaw = useQuery( - convexUserId ? api.alerts.list : undefined, + api.alerts.list, convexUserId ? ({ tenantId, @@ -34,7 +34,7 @@ export function AdminAlertsManager() { end, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">), }) - : undefined + : "skip" ) as Doc<"alerts">[] | undefined const alerts = useMemo(() => { @@ -43,8 +43,8 @@ export function AdminAlertsManager() { }, [alertsRaw]) const companies = useQuery( - convexUserId ? api.companies.list : undefined, - convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: Id<"companies">; name: string }> | undefined return ( diff --git a/src/components/admin/fields/fields-manager.tsx b/src/components/admin/fields/fields-manager.tsx index a79930a..b46faf0 100644 --- a/src/components/admin/fields/fields-manager.tsx +++ b/src/components/admin/fields/fields-manager.tsx @@ -44,8 +44,8 @@ export function FieldsManager() { const tenantId = session?.user.tenantId ?? DEFAULT_TENANT_ID const fields = useQuery( - convexUserId ? api.fields.list : undefined, - convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.fields.list, + convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Field[] | undefined const createField = useMutation(api.fields.create) diff --git a/src/components/admin/machines/admin-machine-details.client.tsx b/src/components/admin/machines/admin-machine-details.client.tsx index d3397b6..ec9e01d 100644 --- a/src/components/admin/machines/admin-machine-details.client.tsx +++ b/src/components/admin/machines/admin-machine-details.client.tsx @@ -22,11 +22,13 @@ export function AdminMachineDetailsClient({ tenantId: _tenantId, machineId }: { const effectiveMachineId = machineId ?? routeMachineId ?? "" const canLoadMachine = Boolean(effectiveMachineId) - const queryArgs = canLoadMachine - ? ({ id: effectiveMachineId as Id<"machines">, includeMetadata: true } as const) - : undefined - const single = useQuery(canLoadMachine ? api.machines.getById : undefined, queryArgs) + const single = useQuery( + api.machines.getById, + canLoadMachine + ? ({ id: effectiveMachineId as Id<"machines">, includeMetadata: true } as const) + : "skip" + ) // Fallback via HTTP in caso de o Convex React demorar/ficar preso em loading const [fallback, setFallback] = useState | null | undefined>(undefined) diff --git a/src/components/admin/machines/admin-machines-overview.tsx b/src/components/admin/machines/admin-machines-overview.tsx index 44af4e9..9bd4470 100644 --- a/src/components/admin/machines/admin-machines-overview.tsx +++ b/src/components/admin/machines/admin-machines-overview.tsx @@ -1206,8 +1206,8 @@ export function AdminMachinesOverview({ tenantId, initialCompanyFilterSlug = "al const [exportError, setExportError] = useState(null) const { convexUserId } = useAuth() const companies = useQuery( - convexUserId ? api.companies.list : undefined, - convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: string; name: string; slug?: string }> | undefined const companyNameBySlug = useMemo(() => { const map = new Map() @@ -1698,13 +1698,13 @@ export function MachineDetails({ machine }: MachineDetailsProps) { const [isActiveLocal, setIsActiveLocal] = useState(machine?.isActive ?? true) const isDeactivated = !isActiveLocal || effectiveStatus === "deactivated" const alertsHistory = useQuery( - machine ? api.machines.listAlerts : undefined, - machine ? { machineId: machine.id as Id<"machines">, limit: 50 } : undefined + api.machines.listAlerts, + machine ? { machineId: machine.id as Id<"machines">, limit: 50 } : "skip" ) as MachineAlertEntry[] | undefined const machineAlertsHistory = alertsHistory ?? [] const openTickets = useQuery( - machine ? api.machines.listOpenTickets : undefined, - machine ? { machineId: machine.id as Id<"machines">, limit: 6 } : undefined + api.machines.listOpenTickets, + machine ? { machineId: machine.id as Id<"machines">, limit: 6 } : "skip" ) as MachineOpenTicketsSummary | undefined const machineTickets = openTickets?.tickets ?? [] const totalOpenTickets = openTickets?.totalOpen ?? machineTickets.length diff --git a/src/components/admin/machines/machine-breadcrumbs.client.tsx b/src/components/admin/machines/machine-breadcrumbs.client.tsx index cbd8e59..4fada84 100644 --- a/src/components/admin/machines/machine-breadcrumbs.client.tsx +++ b/src/components/admin/machines/machine-breadcrumbs.client.tsx @@ -22,11 +22,12 @@ type MachineBreadcrumbsProps = { export function MachineBreadcrumbs({ tenantId: _tenantId, machineId, machineHref, extra }: MachineBreadcrumbsProps) { const { convexUserId } = useAuth() const canLoadMachine = Boolean(machineId && convexUserId) - const queryArgs = canLoadMachine - ? ({ id: machineId as Id<"machines">, includeMetadata: false } as const) - : undefined - - const item = useQuery(canLoadMachine ? api.machines.getById : undefined, queryArgs) + const item = useQuery( + api.machines.getById, + canLoadMachine + ? ({ id: machineId as Id<"machines">, includeMetadata: false } as const) + : "skip" + ) const hostname = useMemo(() => item?.hostname ?? "Detalhe", [item]) const segments = useMemo(() => { const trail: BreadcrumbSegment[] = [ diff --git a/src/components/admin/queues/queues-manager.tsx b/src/components/admin/queues/queues-manager.tsx index 39bbb1f..05777c3 100644 --- a/src/components/admin/queues/queues-manager.tsx +++ b/src/components/admin/queues/queues-manager.tsx @@ -38,12 +38,12 @@ export function QueuesManager() { const NO_TEAM_VALUE = "__none__" const queues = useQuery( - convexUserId ? api.queues.list : undefined, - convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.queues.list, + convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Queue[] | undefined const teams = useQuery( - convexUserId ? api.teams.list : undefined, - convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.teams.list, + convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as TeamOption[] | undefined const createQueue = useMutation(api.queues.create) diff --git a/src/components/admin/slas/slas-manager.tsx b/src/components/admin/slas/slas-manager.tsx index 89d2a97..268ba4f 100644 --- a/src/components/admin/slas/slas-manager.tsx +++ b/src/components/admin/slas/slas-manager.tsx @@ -37,8 +37,8 @@ export function SlasManager() { const tenantId = session?.user.tenantId ?? DEFAULT_TENANT_ID const slas = useQuery( - convexUserId ? api.slas.list : undefined, - convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.slas.list, + convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as SlaPolicy[] | undefined const createSla = useMutation(api.slas.create) diff --git a/src/components/admin/teams/teams-manager.tsx b/src/components/admin/teams/teams-manager.tsx index ec24af0..b554ac0 100644 --- a/src/components/admin/teams/teams-manager.tsx +++ b/src/components/admin/teams/teams-manager.tsx @@ -39,12 +39,12 @@ export function TeamsManager() { const tenantId = session?.user.tenantId ?? DEFAULT_TENANT_ID const teams = useQuery( - convexUserId ? api.teams.list : undefined, - convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.teams.list, + convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Team[] | undefined const directory = useQuery( - convexUserId ? api.teams.directory : undefined, - convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.teams.directory, + convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as DirectoryUser[] | undefined const createTeam = useMutation(api.teams.create) diff --git a/src/components/chart-area-interactive.tsx b/src/components/chart-area-interactive.tsx index 22f771d..86d2f3a 100644 --- a/src/components/chart-area-interactive.tsx +++ b/src/components/chart-area-interactive.tsx @@ -64,14 +64,14 @@ export function ChartAreaInteractive() { const reportsEnabled = Boolean(isStaff && convexUserId) const report = useQuery( - reportsEnabled ? api.reports.ticketsByChannel : undefined, + api.reports.ticketsByChannel, reportsEnabled ? ({ tenantId, viewerId: convexUserId as Id<"users">, range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">) }) - : undefined + : "skip" ) const companies = useQuery( - reportsEnabled ? api.companies.list : undefined, - reportsEnabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + reportsEnabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: Id<"companies">; name: string }> | undefined const filteredCompanies = React.useMemo(() => { const q = companyQuery.trim().toLowerCase() diff --git a/src/components/charts/chart-open-priority.tsx b/src/components/charts/chart-open-priority.tsx index e1859a3..a7039c1 100644 --- a/src/components/charts/chart-open-priority.tsx +++ b/src/components/charts/chart-open-priority.tsx @@ -47,7 +47,7 @@ export function ChartOpenByPriority() { const enabled = Boolean(isStaff && convexUserId) const report = useQuery( - enabled ? api.reports.backlogOverview : undefined, + api.reports.backlogOverview, enabled ? ({ tenantId, @@ -55,12 +55,12 @@ export function ChartOpenByPriority() { range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">), }) - : undefined + : "skip" ) as { priorityCounts: Record } | undefined const companies = useQuery( - enabled ? api.companies.list : undefined, - enabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + enabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: Id<"companies">; name: string }> | undefined if (!report) { diff --git a/src/components/charts/chart-opened-resolved.tsx b/src/components/charts/chart-opened-resolved.tsx index a4f8ddf..417c761 100644 --- a/src/components/charts/chart-opened-resolved.tsx +++ b/src/components/charts/chart-opened-resolved.tsx @@ -31,7 +31,7 @@ export function ChartOpenedResolved() { const reportsEnabled = Boolean(isStaff && convexUserId) const data = useQuery( - reportsEnabled ? api.reports.openedResolvedByDay : undefined, + api.reports.openedResolvedByDay, reportsEnabled ? ({ tenantId, @@ -39,12 +39,12 @@ export function ChartOpenedResolved() { range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">), }) - : undefined + : "skip" ) as { rangeDays: number; series: SeriesPoint[] } | undefined const companies = useQuery( - reportsEnabled ? api.companies.list : undefined, - reportsEnabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + reportsEnabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: Id<"companies">; name: string }> | undefined if (!data) { diff --git a/src/components/charts/views-charts.tsx b/src/components/charts/views-charts.tsx index c6bdc44..bf8d914 100644 --- a/src/components/charts/views-charts.tsx +++ b/src/components/charts/views-charts.tsx @@ -29,14 +29,14 @@ function BacklogPriorityPie() { const { session, convexUserId, isStaff } = useAuth() const tenantId = session?.user.tenantId ?? DEFAULT_TENANT_ID const data = useQuery( - isStaff && convexUserId ? api.reports.backlogOverview : undefined, + api.reports.backlogOverview, isStaff && convexUserId ? ({ tenantId, viewerId: convexUserId as Id<"users">, range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">) }) - : undefined + : "skip" ) as { priorityCounts: Record } | undefined const companies = useQuery( - isStaff && convexUserId ? api.companies.list : undefined, - isStaff && convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + isStaff && convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: Id<"companies">; name: string }> | undefined if (!data) return @@ -112,14 +112,14 @@ function QueuesOpenBar() { const { session, convexUserId, isStaff } = useAuth() const tenantId = session?.user.tenantId ?? DEFAULT_TENANT_ID const data = useQuery( - isStaff && convexUserId ? api.reports.slaOverview : undefined, + api.reports.slaOverview, isStaff && convexUserId ? ({ tenantId, viewerId: convexUserId as Id<"users">, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">) }) - : undefined + : "skip" ) as { queueBreakdown: { id: string; name: string; open: number }[] } | undefined const companies = useQuery( - isStaff && convexUserId ? api.companies.list : undefined, - isStaff && convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + isStaff && convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: Id<"companies">; name: string }> | undefined if (!data) return diff --git a/src/components/portal/portal-ticket-detail.tsx b/src/components/portal/portal-ticket-detail.tsx index 50249ec..54c5740 100644 --- a/src/components/portal/portal-ticket-detail.tsx +++ b/src/components/portal/portal-ticket-detail.tsx @@ -73,14 +73,14 @@ export function PortalTicketDetail({ ticketId }: PortalTicketDetailProps) { const machineInactive = machineContext?.isActive === false const ticketRaw = useQuery( - convexUserId ? api.tickets.getById : undefined, + api.tickets.getById, convexUserId ? { tenantId: session?.user.tenantId ?? DEFAULT_TENANT_ID, id: ticketId as Id<"tickets">, viewerId: convexUserId as Id<"users">, } - : undefined + : "skip" ) const ticket = useMemo(() => { diff --git a/src/components/portal/portal-ticket-list.tsx b/src/components/portal/portal-ticket-list.tsx index 4b9271d..3ae286c 100644 --- a/src/components/portal/portal-ticket-list.tsx +++ b/src/components/portal/portal-ticket-list.tsx @@ -21,14 +21,14 @@ export function PortalTicketList() { const viewerId = (convexUserId ?? machineContext?.assignedUserId ?? null) as Id<"users"> | null const ticketsRaw = useQuery( - viewerId ? api.tickets.list : undefined, + api.tickets.list, viewerId ? { tenantId: session?.user.tenantId ?? DEFAULT_TENANT_ID, viewerId, limit: 100, } - : undefined + : "skip" ) const tickets = useMemo(() => { diff --git a/src/components/reports/backlog-report.tsx b/src/components/reports/backlog-report.tsx index b62a4cd..e03c4fd 100644 --- a/src/components/reports/backlog-report.tsx +++ b/src/components/reports/backlog-report.tsx @@ -44,12 +44,12 @@ export function BacklogReport() { const tenantId = session?.user.tenantId ?? DEFAULT_TENANT_ID const enabled = Boolean(isStaff && convexUserId) const data = useQuery( - enabled ? api.reports.backlogOverview : undefined, - enabled ? { tenantId, viewerId: convexUserId as Id<"users">, range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">) } : undefined + api.reports.backlogOverview, + enabled ? { tenantId, viewerId: convexUserId as Id<"users">, range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">) } : "skip" ) const companies = useQuery( - enabled ? api.companies.list : undefined, - enabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + enabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: Id<"companies">; name: string }> | undefined const mostCriticalPriority = useMemo(() => { diff --git a/src/components/reports/company-report.tsx b/src/components/reports/company-report.tsx index 4b4a775..3eb3cf3 100644 --- a/src/components/reports/company-report.tsx +++ b/src/components/reports/company-report.tsx @@ -63,8 +63,8 @@ export function CompanyReport() { const [timeRange, setTimeRange] = useState<"7d" | "30d" | "90d">("30d") const companies = useQuery( - isStaff && convexUserId ? api.companies.list : undefined, - isStaff && convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + isStaff && convexUserId ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as CompanyRecord[] | undefined useEffect(() => { @@ -74,7 +74,7 @@ export function CompanyReport() { }, [companies, selectedCompany]) const report = useQuery( - selectedCompany && convexUserId && isStaff ? api.reports.companyOverview : undefined, + api.reports.companyOverview, selectedCompany && convexUserId && isStaff ? { tenantId, @@ -82,7 +82,7 @@ export function CompanyReport() { companyId: selectedCompany as Id<"companies">, range: timeRange, } - : undefined + : "skip" ) const isLoading = selectedCompany !== "" && report === undefined diff --git a/src/components/reports/csat-report.tsx b/src/components/reports/csat-report.tsx index cda5de6..11ee57c 100644 --- a/src/components/reports/csat-report.tsx +++ b/src/components/reports/csat-report.tsx @@ -29,14 +29,14 @@ export function CsatReport() { const tenantId = session?.user.tenantId ?? DEFAULT_TENANT_ID const enabled = Boolean(isStaff && convexUserId) const data = useQuery( - enabled ? api.reports.csatOverview : undefined, + api.reports.csatOverview, enabled ? ({ tenantId, viewerId: convexUserId as Id<"users">, range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">) }) - : undefined + : "skip" ) const companies = useQuery( - enabled ? api.companies.list : undefined, - enabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + enabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: Id<"companies">; name: string }> | undefined if (!data) { diff --git a/src/components/reports/hours-report.tsx b/src/components/reports/hours-report.tsx index bcb8f59..1e82e0d 100644 --- a/src/components/reports/hours-report.tsx +++ b/src/components/reports/hours-report.tsx @@ -50,13 +50,13 @@ export function HoursReport() { const enabled = Boolean(isStaff && convexUserId) const data = useQuery( - enabled ? api.reports.hoursByClient : undefined, - enabled ? { tenantId, viewerId: convexUserId as Id<"users">, range: timeRange } : undefined + api.reports.hoursByClient, + enabled ? { tenantId, viewerId: convexUserId as Id<"users">, range: timeRange } : "skip" ) as { rangeDays: number; items: HoursItem[] } | undefined const companies = useQuery( - enabled ? api.companies.list : undefined, - enabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + enabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: Id<"companies">; name: string }> | undefined const filtered = useMemo(() => { const items = data?.items ?? [] diff --git a/src/components/reports/sla-report.tsx b/src/components/reports/sla-report.tsx index c6c7f8d..6d862e0 100644 --- a/src/components/reports/sla-report.tsx +++ b/src/components/reports/sla-report.tsx @@ -41,34 +41,34 @@ export function SlaReport() { const tenantId = session?.user.tenantId ?? DEFAULT_TENANT_ID const enabled = Boolean(isStaff && convexUserId) const data = useQuery( - enabled ? api.reports.slaOverview : undefined, + api.reports.slaOverview, enabled ? ({ tenantId, viewerId: convexUserId as Id<"users">, range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">) }) - : undefined + : "skip" ) const agents = useQuery( - enabled ? api.reports.agentProductivity : undefined, + api.reports.agentProductivity, enabled ? ({ tenantId, viewerId: convexUserId as Id<"users">, range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">) }) - : undefined + : "skip" ) as { rangeDays: number; items: Array<{ agentId: string; name: string | null; email: string | null; open: number; resolved: number; avgFirstResponseMinutes: number | null; avgResolutionMinutes: number | null; workedHours: number }> } | undefined const openedResolved = useQuery( - enabled ? api.reports.openedResolvedByDay : undefined, + api.reports.openedResolvedByDay, enabled ? ({ tenantId, viewerId: convexUserId as Id<"users">, range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">) }) - : undefined + : "skip" ) as { rangeDays: number; series: Array<{ date: string; opened: number; resolved: number }> } | undefined const channelsSeries = useQuery( - enabled ? api.reports.ticketsByChannel : undefined, + api.reports.ticketsByChannel, enabled ? ({ tenantId, viewerId: convexUserId as Id<"users">, range: timeRange, companyId: companyId === "all" ? undefined : (companyId as Id<"companies">) }) - : undefined + : "skip" ) as { rangeDays: number; channels: string[]; points: Array<{ date: string; values: Record }> } | undefined const companies = useQuery( - enabled ? api.companies.list : undefined, - enabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.companies.list, + enabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) as Array<{ id: Id<"companies">; name: string }> | undefined const queueTotal = useMemo( diff --git a/src/components/section-cards.tsx b/src/components/section-cards.tsx index f69b7b6..596c1d1 100644 --- a/src/components/section-cards.tsx +++ b/src/components/section-cards.tsx @@ -34,8 +34,8 @@ export function SectionCards() { const dashboardEnabled = Boolean(isStaff && convexUserId) const dashboard = useQuery( - dashboardEnabled ? api.reports.dashboardOverview : undefined, - dashboardEnabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined + api.reports.dashboardOverview, + dashboardEnabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" ) const inProgressSummary = useMemo(() => { diff --git a/src/components/settings/comment-templates-manager.tsx b/src/components/settings/comment-templates-manager.tsx index 0ca44ec..bdc4835 100644 --- a/src/components/settings/comment-templates-manager.tsx +++ b/src/components/settings/comment-templates-manager.tsx @@ -24,8 +24,8 @@ export function CommentTemplatesManager() { const [activeKind, setActiveKind] = useState<"comment" | "closing">("comment") const templates = useQuery( - viewerId ? api.commentTemplates.list : undefined, - viewerId ? { tenantId, viewerId, kind: activeKind } : undefined + api.commentTemplates.list, + viewerId ? { tenantId, viewerId, kind: activeKind } : "skip" ) as | { id: Id<"commentTemplates"> diff --git a/src/components/tickets/close-ticket-dialog.tsx b/src/components/tickets/close-ticket-dialog.tsx index f0eb83c..5dd86e6 100644 --- a/src/components/tickets/close-ticket-dialog.tsx +++ b/src/components/tickets/close-ticket-dialog.tsx @@ -135,8 +135,8 @@ export function CloseTicketDialog({ const closingTemplateArgs = actorId && open ? { tenantId, viewerId: actorId, kind: "closing" as const } : undefined const closingTemplatesRemote = useQuery( - actorId && open ? api.commentTemplates.list : undefined, - closingTemplateArgs + api.commentTemplates.list, + closingTemplateArgs ?? "skip" ) const closingTemplates = Array.isArray(closingTemplatesRemote) ? (closingTemplatesRemote as { id: string; title: string; body: string }[]) diff --git a/src/components/tickets/new-ticket-dialog.tsx b/src/components/tickets/new-ticket-dialog.tsx index d0733ff..ad57682 100644 --- a/src/components/tickets/new-ticket-dialog.tsx +++ b/src/components/tickets/new-ticket-dialog.tsx @@ -126,12 +126,11 @@ export function NewTicketDialog({ triggerClassName }: { triggerClassName?: strin }) const { convexUserId, isStaff, role } = useAuth() const queuesEnabled = Boolean(isStaff && convexUserId) - const queueArgs = queuesEnabled - ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } - : undefined - useDefaultQueues(DEFAULT_TENANT_ID) - const queuesRemote = useQuery(queuesEnabled ? api.queues.summary : undefined, queueArgs) + const queuesRemote = useQuery( + api.queues.summary, + queuesEnabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : "skip" + ) const queues = useMemo( () => (Array.isArray(queuesRemote) ? (queuesRemote as TicketQueueSummary[]) : []), [queuesRemote] @@ -145,10 +144,10 @@ export function NewTicketDialog({ triggerClassName }: { triggerClassName?: strin ) const directoryQueryEnabled = queuesEnabled && Boolean(convexUserId) - const companiesArgs = directoryQueryEnabled - ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } - : undefined - const companiesRemote = useQuery(directoryQueryEnabled ? api.companies.list : undefined, companiesArgs) + const companiesRemote = useQuery( + api.companies.list, + directoryQueryEnabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : "skip" + ) const companies = useMemo( () => (Array.isArray(companiesRemote) ? companiesRemote : []).map((company) => ({ @@ -159,10 +158,10 @@ export function NewTicketDialog({ triggerClassName }: { triggerClassName?: strin [companiesRemote] ) - const customersArgs = directoryQueryEnabled - ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } - : undefined - const customersRemote = useQuery(directoryQueryEnabled ? api.users.listCustomers : undefined, customersArgs) + const customersRemote = useQuery( + api.users.listCustomers, + directoryQueryEnabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : "skip" + ) const customers = useMemo( () => (Array.isArray(customersRemote) ? (customersRemote as CustomerOption[]) : []), [customersRemote] diff --git a/src/components/tickets/play-next-ticket-card.tsx b/src/components/tickets/play-next-ticket-card.tsx index 63203f8..884a2ab 100644 --- a/src/components/tickets/play-next-ticket-card.tsx +++ b/src/components/tickets/play-next-ticket-card.tsx @@ -32,14 +32,16 @@ export function PlayNextTicketCard({ context }: PlayNextTicketCardProps) { const router = useRouter() const { convexUserId, isStaff } = useAuth() const queuesEnabled = Boolean(isStaff && convexUserId) - const queueArgs = queuesEnabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : undefined - const queueSummaryResult = useQuery(queuesEnabled ? api.queues.summary : undefined, queueArgs) + const queueSummaryResult = useQuery( + api.queues.summary, + queuesEnabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : "skip" + ) const queueSummary: TicketQueueSummary[] = Array.isArray(queueSummaryResult) ? queueSummaryResult : [] const playNext = useMutation(api.tickets.playNext) const [selectedQueueId, setSelectedQueueId] = useState(undefined) const nextTicketFromServer = useQuery( - convexUserId ? api.tickets.list : undefined, + api.tickets.list, convexUserId ? { tenantId: DEFAULT_TENANT_ID, @@ -50,7 +52,7 @@ export function PlayNextTicketCard({ context }: PlayNextTicketCardProps) { queueId: (selectedQueueId as Id<"queues">) || undefined, limit: 1, } - : undefined + : "skip" )?.[0] const nextTicketUi = nextTicketFromServer ? mapTicketFromServer(nextTicketFromServer as unknown) : null diff --git a/src/components/tickets/recent-tickets-panel.tsx b/src/components/tickets/recent-tickets-panel.tsx index 184247a..e1bd08a 100644 --- a/src/components/tickets/recent-tickets-panel.tsx +++ b/src/components/tickets/recent-tickets-panel.tsx @@ -74,10 +74,12 @@ function TicketRow({ ticket, entering }: { ticket: Ticket; entering: boolean }) export function RecentTicketsPanel() { const { convexUserId } = useAuth() - const ticketsArgs = convexUserId - ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users">, limit: 12 } - : undefined - const ticketsResult = useQuery(convexUserId ? api.tickets.list : undefined, ticketsArgs) + const ticketsResult = useQuery( + api.tickets.list, + convexUserId + ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users">, limit: 12 } + : "skip" + ) const [enteringId, setEnteringId] = useState(null) const previousIdsRef = useRef([]) diff --git a/src/components/tickets/ticket-comments.rich.tsx b/src/components/tickets/ticket-comments.rich.tsx index e742a98..c100d35 100644 --- a/src/components/tickets/ticket-comments.rich.tsx +++ b/src/components/tickets/ticket-comments.rich.tsx @@ -73,8 +73,8 @@ export function TicketComments({ ticket }: TicketCommentsProps) { const templateArgs = convexUserId && isStaff ? { tenantId: ticket.tenantId, viewerId: convexUserId as Id<"users">, kind: "comment" as const } - : undefined - const templatesResult = useQuery(convexUserId && isStaff ? api.commentTemplates.list : undefined, templateArgs) + : "skip" + const templatesResult = useQuery(api.commentTemplates.list, templateArgs) const templates = Array.isArray(templatesResult) ? (templatesResult as { id: string; title: string; body: string }[]) : [] diff --git a/src/components/tickets/ticket-detail-view.tsx b/src/components/tickets/ticket-detail-view.tsx index 8ed2258..1c38aa0 100644 --- a/src/components/tickets/ticket-detail-view.tsx +++ b/src/components/tickets/ticket-detail-view.tsx @@ -17,14 +17,16 @@ import { useAuth } from "@/lib/auth-client"; export function TicketDetailView({ id }: { id: string }) { const { convexUserId } = useAuth(); const canLoadTicket = Boolean(convexUserId); - const queryArgs = canLoadTicket - ? { - tenantId: DEFAULT_TENANT_ID, - id: id as Id<"tickets">, - viewerId: convexUserId as Id<"users">, - } - : undefined; - const t = useQuery(canLoadTicket ? api.tickets.getById : undefined, queryArgs); + const t = useQuery( + api.tickets.getById, + canLoadTicket + ? { + tenantId: DEFAULT_TENANT_ID, + id: id as Id<"tickets">, + viewerId: convexUserId as Id<"users">, + } + : "skip" + ); const isLoading = !convexUserId || t === undefined; if (isLoading) { diff --git a/src/components/tickets/ticket-queue-summary.tsx b/src/components/tickets/ticket-queue-summary.tsx index baa8869..6cf4915 100644 --- a/src/components/tickets/ticket-queue-summary.tsx +++ b/src/components/tickets/ticket-queue-summary.tsx @@ -16,10 +16,11 @@ interface TicketQueueSummaryProps { export function TicketQueueSummaryCards({ queues }: TicketQueueSummaryProps) { const { convexUserId, isStaff } = useAuth() const enabled = Boolean(isStaff && convexUserId) - const queueArgs = enabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : undefined - const fromServer = useQuery(enabled ? api.queues.summary : undefined, queueArgs) - const serverData = Array.isArray(fromServer) ? fromServer : undefined - const data: TicketQueueSummary[] = queues ?? serverData ?? [] + const fromServer = useQuery( + api.queues.summary, + enabled ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : "skip" + ) as TicketQueueSummary[] | undefined + const data: TicketQueueSummary[] = queues ?? fromServer ?? [] if (!queues && fromServer === undefined) { return ( diff --git a/src/components/tickets/ticket-summary-header.tsx b/src/components/tickets/ticket-summary-header.tsx index f98d030..9fc6706 100644 --- a/src/components/tickets/ticket-summary-header.tsx +++ b/src/components/tickets/ticket-summary-header.tsx @@ -167,10 +167,10 @@ export function TicketSummaryHeader({ ticket }: TicketHeaderProps) { const updateCategories = useMutation(api.tickets.updateCategories) const agents = (useQuery(api.users.listAgents, { tenantId: ticket.tenantId }) as Doc<"users">[] | undefined) ?? [] const queuesEnabled = Boolean(isStaff && convexUserId) - const companiesArgs = convexUserId - ? { tenantId: ticket.tenantId, viewerId: convexUserId as Id<"users"> } - : undefined - const companiesRemote = useQuery(convexUserId ? api.companies.list : undefined, companiesArgs) + const companiesRemote = useQuery( + api.companies.list, + convexUserId ? { tenantId: ticket.tenantId, viewerId: convexUserId as Id<"users"> } : "skip" + ) const companies = useMemo( () => (Array.isArray(companiesRemote) ? companiesRemote : []).map((company) => ({ @@ -181,27 +181,26 @@ export function TicketSummaryHeader({ ticket }: TicketHeaderProps) { [companiesRemote] ) - const customersArgs = convexUserId - ? { tenantId: ticket.tenantId, viewerId: convexUserId as Id<"users"> } - : undefined - const customersRemote = useQuery(convexUserId ? api.users.listCustomers : undefined, customersArgs) + const customersRemote = useQuery( + api.users.listCustomers, + convexUserId ? { tenantId: ticket.tenantId, viewerId: convexUserId as Id<"users"> } : "skip" + ) const customers = useMemo( () => (Array.isArray(customersRemote) ? (customersRemote as CustomerOption[]) : []), [customersRemote] ) - const queueArgs = queuesEnabled - ? { tenantId: ticket.tenantId, viewerId: convexUserId as Id<"users"> } - : undefined - const queuesResult = useQuery(queuesEnabled ? api.queues.summary : undefined, queueArgs) + const queuesResult = useQuery( + api.queues.summary, + queuesEnabled ? { tenantId: ticket.tenantId, viewerId: convexUserId as Id<"users"> } : "skip" + ) const queues: TicketQueueSummary[] = Array.isArray(queuesResult) ? queuesResult : [] const { categories, isLoading: categoriesLoading } = useTicketCategories(ticket.tenantId) - const workSummaryArgs = convexUserId - ? { ticketId: ticket.id as Id<"tickets">, viewerId: convexUserId as Id<"users"> } - : undefined const workSummaryRemote = useQuery( - convexUserId ? api.tickets.workSummary : undefined, - workSummaryArgs + api.tickets.workSummary, + convexUserId + ? { ticketId: ticket.id as Id<"tickets">, viewerId: convexUserId as Id<"users"> } + : "skip" ) as | { ticketId: Id<"tickets"> diff --git a/src/components/tickets/tickets-view.tsx b/src/components/tickets/tickets-view.tsx index 3946c99..820b954 100644 --- a/src/components/tickets/tickets-view.tsx +++ b/src/components/tickets/tickets-view.tsx @@ -65,8 +65,10 @@ export function TicketsView({ initialFilters }: TicketsViewProps = {}) { useDefaultQueues(tenantId) const queuesEnabled = Boolean(isStaff && convexUserId) - const queueArgs = queuesEnabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : undefined - const queuesResult = useQuery(queuesEnabled ? api.queues.summary : undefined, queueArgs) + const queuesResult = useQuery( + api.queues.summary, + queuesEnabled ? { tenantId, viewerId: convexUserId as Id<"users"> } : "skip" + ) const queues: TicketQueueSummary[] = Array.isArray(queuesResult) ? queuesResult : [] const agents = useQuery(api.users.listAgents, { tenantId }) as { _id: string; name: string }[] | undefined const ticketsArgs = convexUserId @@ -80,8 +82,8 @@ export function TicketsView({ initialFilters }: TicketsViewProps = {}) { assigneeId: filters.assigneeId ? (filters.assigneeId as unknown as Id<"users">) : undefined, search: filters.search || undefined, } - : undefined - const ticketsRaw = useQuery(convexUserId ? api.tickets.list : undefined, ticketsArgs) + : "skip" + const ticketsRaw = useQuery(api.tickets.list, ticketsArgs) const tickets = useMemo( () => mapTicketsFromServerList(Array.isArray(ticketsRaw) ? (ticketsRaw as unknown[]) : []),