From 698e082719453d079ef584d5215512fbb3ea7c4f Mon Sep 17 00:00:00 2001 From: Esdras Renan Date: Tue, 18 Nov 2025 22:20:35 -0300 Subject: [PATCH] feat: improve hours report filter layout --- src/components/reports/hours-report.tsx | 118 ++++++++++++++++++------ 1 file changed, 90 insertions(+), 28 deletions(-) diff --git a/src/components/reports/hours-report.tsx b/src/components/reports/hours-report.tsx index 5157486..ec89bde 100644 --- a/src/components/reports/hours-report.tsx +++ b/src/components/reports/hours-report.tsx @@ -28,7 +28,9 @@ import { import type { ChartConfig } from "@/components/ui/chart" import { formatHoursCompact } from "@/lib/utils" import { SearchableCombobox, type SearchableComboboxOption } from "@/components/ui/searchable-combobox" -import { ReportsFilterToolbar } from "@/components/reports/report-filter-toolbar" +import { Button } from "@/components/ui/button" +import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group" +import { DateRangeButton } from "@/components/date-range-button" import { ReportScheduleDrawer } from "@/components/reports/report-schedule-drawer" type HoursItem = { @@ -227,31 +229,81 @@ export function HoursReport() { companyOptions={companyOptions} /> ) : null} - setCompanyId(value)} - companyOptions={companyOptions} - timeRange={timeRange} - onTimeRangeChange={(value) => { - setTimeRange(value) - setDateFrom(null) - setDateTo(null) - }} - showBillingFilter - billingFilter={billingFilter} - onBillingFilterChange={(value) => setBillingFilter(value)} - exportHref={exportHref} - onOpenScheduler={isAdmin ? () => setSchedulerOpen(true) : undefined} - dateFrom={dateFrom} - dateTo={dateTo} - onDateRangeChange={({ from, to }) => { - setDateFrom(from) - setDateTo(to) - }} - allowExtendedRanges={groupBy === "machine"} - extraFilters={ -
- Agrupar por +
+
+
+ setCompanyId(value ?? "all")} + options={companyOptions} + placeholder="Todas as empresas" + triggerClassName="h-10 w-full rounded-2xl border border-border/60 bg-white px-3 text-left text-sm font-semibold text-neutral-800 lg:w-64" + /> + { + setDateFrom(from) + setDateTo(to) + }} + className="w-full min-w-[200px] lg:w-auto" + /> +
+
+ value && setBillingFilter(value as typeof billingFilter)} + className="inline-flex rounded-full border border-border/60 bg-white/80 p-1 overflow-hidden" + > + + Todos + + + Somente avulsos + + + Somente contratados + + +
+
+
+ { + if (!value) return + setTimeRange(value as typeof timeRange) + setDateFrom(null) + setDateTo(null) + }} + variant="outline" + size="lg" + className="flex flex-wrap rounded-2xl border border-border/60 lg:flex-nowrap lg:min-w-[320px]" + > + + 90 dias + + + 30 dias + + + 7 dias + + {groupBy === "machine" ? ( + <> + + 12 meses + + + Todo histórico + + + ) : null} + +
+ Agrupar por
- } - /> +
+ {isAdmin ? ( + + ) : null} + +
+
+