Reorganiza gestão de usuários e remove dados mock

This commit is contained in:
Esdras Renan 2025-10-18 01:15:15 -03:00
parent 630110bf3a
commit dded6d1927
20 changed files with 1863 additions and 1368 deletions

View file

@ -6,7 +6,6 @@ import { format, formatDistanceToNowStrict } from "date-fns"
import { ptBR } from "date-fns/locale"
import { type LucideIcon, Code, FileText, Mail, MessageCircle, MessageSquare, Phone } from "lucide-react"
import { tickets as ticketsMock } from "@/lib/mocks/tickets"
import type { Ticket, TicketChannel, TicketStatus } from "@/lib/schemas/ticket"
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { Badge } from "@/components/ui/badge"
@ -110,7 +109,8 @@ export type TicketsTableProps = {
tickets?: Ticket[]
}
export function TicketsTable({ tickets = ticketsMock }: TicketsTableProps) {
export function TicketsTable({ tickets }: TicketsTableProps) {
const safeTickets = tickets ?? []
const [now, setNow] = useState(() => Date.now())
const router = useRouter()
@ -152,7 +152,7 @@ export function TicketsTable({ tickets = ticketsMock }: TicketsTableProps) {
<TableHead className="hidden w-[150px] pl-6 pr-3 py-3 text-left text-[11px] font-semibold uppercase tracking-wide text-neutral-600 first:pl-6 last:pr-6 lg:table-cell xl:w-[180px]">
Empresa
</TableHead>
<TableHead className="hidden w-[90px] pl-1 pr-3 py-3 text-left text-[11px] font-semibold uppercase tracking-wide text-neutral-600 first:pl-6 last:pr-6 md:table-cell lg:w-[100px]">
<TableHead className="hidden w-[90px] px-4 py-3 text-center text-[11px] font-semibold uppercase tracking-wide text-neutral-600 first:pl-6 last:pr-6 md:table-cell lg:w-[100px]">
Prioridade
</TableHead>
<TableHead className="w-[160px] pl-6 pr-3 py-3 text-left text-[11px] font-semibold uppercase tracking-wide text-neutral-600 first:pl-6 last:pr-6 sm:w-[200px] lg:pl-10 xl:w-[230px] xl:pl-14">
@ -170,7 +170,7 @@ export function TicketsTable({ tickets = ticketsMock }: TicketsTableProps) {
</TableRow>
</TableHeader>
<TableBody>
{tickets.map((ticket) => {
{safeTickets.map((ticket) => {
const ChannelIcon = channelIcon[ticket.channel] ?? MessageCircle
return (
@ -240,9 +240,9 @@ export function TicketsTable({ tickets = ticketsMock }: TicketsTableProps) {
{((ticket.company ?? null) as { name?: string } | null)?.name ?? "—"}
</span>
</TableCell>
<TableCell className={`${cellClass} hidden md:table-cell pl-1 pr-6 lg:pr-8`}>
<TableCell className={`${cellClass} hidden md:table-cell px-4`}>
<div
className="inline-flex"
className="flex justify-center"
onClick={(event) => event.stopPropagation()}
onKeyDown={(event) => event.stopPropagation()}
>
@ -288,7 +288,7 @@ export function TicketsTable({ tickets = ticketsMock }: TicketsTableProps) {
</TableBody>
</Table>
</div>
{tickets.length === 0 && (
{safeTickets.length === 0 && (
<Empty className="my-6">
<EmptyHeader>
<EmptyMedia variant="icon">