From b00e52475f0606e9fc5bf94eca52d9119714557a Mon Sep 17 00:00:00 2001 From: Esdras Renan Date: Thu, 13 Nov 2025 15:06:00 -0300 Subject: [PATCH] =?UTF-8?q?Melhora=20filtros=20no=20desktop=20e=20adiciona?= =?UTF-8?q?=20=C3=ADcone=20em=20Todos=20os=20tickets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/app-sidebar.tsx | 2 +- .../portal/portal-ticket-filters.tsx | 99 ++++++++++++++++++- 2 files changed, 99 insertions(+), 2 deletions(-) diff --git a/src/components/app-sidebar.tsx b/src/components/app-sidebar.tsx index bc2e22d..53fd4b8 100644 --- a/src/components/app-sidebar.tsx +++ b/src/components/app-sidebar.tsx @@ -79,7 +79,7 @@ const navigation: NavigationGroup[] = [ icon: Ticket, requiredRole: "staff", children: [ - { title: "Todos os tickets", url: "/tickets", requiredRole: "staff" }, + { title: "Todos os tickets", url: "/tickets", icon: Ticket, requiredRole: "staff" }, { title: "Resolvidos", url: "/tickets/resolved", icon: ShieldCheck, requiredRole: "staff" }, ], }, diff --git a/src/components/portal/portal-ticket-filters.tsx b/src/components/portal/portal-ticket-filters.tsx index 97a2630..bb21d50 100644 --- a/src/components/portal/portal-ticket-filters.tsx +++ b/src/components/portal/portal-ticket-filters.tsx @@ -5,6 +5,7 @@ import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" +import { DatePicker } from "@/components/ui/date-picker" export type PortalTicketFiltersState = { queue: string | null @@ -62,6 +63,102 @@ export function PortalTicketFilters({ onFiltersChange(partial) } + const hasAnyFilterApplied = + Boolean(filters.queue) || + Boolean(filters.company) || + Boolean(filters.categoryId) || + Boolean(filters.assigneeId) || + Boolean(filters.dateFrom) || + Boolean(filters.dateTo) || + filters.status !== "active" || + filters.sort !== "recent" + + if (hideAdvancedFilters) { + return ( +
+
+
+ + + +
+
+

Período

+
+
+

A partir de

+ handleChange({ dateFrom: value })} + placeholder="Selecionar data" + className="rounded-xl border-slate-300 bg-white" + /> +
+
+

Até

+ handleChange({ dateTo: value })} + placeholder="Selecionar data" + className="rounded-xl border-slate-300 bg-white" + /> +
+
+
+
+ {hasAnyFilterApplied && ( +
+ +
+ )} +
+ ) + } + return (
@@ -184,7 +281,7 @@ export function PortalTicketFilters({
- {(filters.queue || filters.company || filters.categoryId || filters.assigneeId || filters.dateFrom || filters.dateTo || filters.status !== "active" || filters.sort !== "recent") && ( + {hasAnyFilterApplied && (