feat: improve ticket export and navigation

This commit is contained in:
Esdras Renan 2025-10-13 00:08:18 -03:00
parent 0731c5d1ea
commit 7d6f3bea01
28 changed files with 1612 additions and 609 deletions

View file

@ -1,6 +1,6 @@
"use client"
import { useMemo, useState } from "react"
import { useEffect, useMemo, useState } from "react"
import { useQuery } from "convex/react"
import { api } from "@/convex/_generated/api"
import type { Id } from "@/convex/_generated/dataModel"
@ -12,8 +12,23 @@ import { TicketsTable } from "@/components/tickets/tickets-table"
import { useAuth } from "@/lib/auth-client"
import { useDefaultQueues } from "@/hooks/use-default-queues"
export function TicketsView() {
const [filters, setFilters] = useState<TicketFiltersState>(defaultTicketFilters)
type TicketsViewProps = {
initialFilters?: Partial<TicketFiltersState>
}
export function TicketsView({ initialFilters }: TicketsViewProps = {}) {
const mergedInitialFilters = useMemo(
() => ({
...defaultTicketFilters,
...(initialFilters ?? {}),
}),
[initialFilters]
)
const [filters, setFilters] = useState<TicketFiltersState>(mergedInitialFilters)
useEffect(() => {
setFilters(mergedInitialFilters)
}, [mergedInitialFilters])
const { session, convexUserId, isStaff } = useAuth()
const tenantId = session?.user.tenantId ?? DEFAULT_TENANT_ID
@ -73,7 +88,12 @@ export function TicketsView() {
return (
<div className="flex flex-col gap-6 px-4 lg:px-6">
<TicketsFilters onChange={setFilters} queues={(queues ?? []).map((q) => q.name)} companies={companies} />
<TicketsFilters
onChange={setFilters}
queues={(queues ?? []).map((q) => q.name)}
companies={companies}
initialState={mergedInitialFilters}
/>
{ticketsRaw === undefined ? (
<div className="rounded-2xl border border-slate-200 bg-white p-4 shadow-sm">
<div className="grid gap-3">