Skip to content

feat(frontend): filtros configurables (fechas + producto/cliente)#28

Merged
aitorevi merged 1 commit into
mainfrom
feat/dashboard-filters
Jun 1, 2026
Merged

feat(frontend): filtros configurables (fechas + producto/cliente)#28
aitorevi merged 1 commit into
mainfrom
feat/dashboard-filters

Conversation

@aitorevi

@aitorevi aitorevi commented Jun 1, 2026

Copy link
Copy Markdown
Owner

Sigue a #27. Añade filtros configurables que recalculan todo el dashboard, derivando los agregados en cliente desde las ventas crudas (sin tocar backend).

Qué añade

  • Barra de filtros: rango de fechas (acotado al min/max de los datos), multi-select de productos y de clientes, y Limpiar filtros.
  • Cualquier cambio recalcula KPIs + los 4 gráficos sobre el subconjunto filtrado.
  • Estado de "sin resultados para los filtros" con reset.

Cambios técnicos

  • analytics.ts: filterSales, productTotals, customerTotals, dateRange, uniqueProducts/Customers, hasActiveFilters, EMPTY_FILTERS (funciones puras).
  • MultiSelect.tsx: dropdown propio con búsqueda + checkboxes + cierre por click-fuera/Escape. Sin dependencias nuevas.
  • fetchDashboard ahora hace 1 request (/api/sales) en vez de 3; el dashboard deriva by-product/by-customer del set filtrado.
  • Self-heal de cold start intacto (ahora basado en sales.length).

Verificación

  • lint ✅ · test:run ✅ (31 tests: +filterSales/productTotals/customerTotals/dateRange + MultiSelect) · build
  • Captura headless del build de producción: barra de filtros renderiza (date pickers acotados, multi-selects "todos", reset deshabilitado) y el dashboard se deriva de las ventas crudas.

🤖 Generated with Claude Code

… recálculo en cliente

El dashboard pasa a derivar TODOS los agregados en cliente desde las ventas
crudas, de modo que los filtros recalculan KPIs y los 4 gráficos a la vez de
forma consistente. Sin tocar el backend.

- FilterBar: rango de fechas (acotado al min/max de los datos) + multi-select de
  productos y clientes + 'Limpiar filtros'.
- MultiSelect: dropdown propio con búsqueda, checkboxes y cierre por click-fuera/
  Escape; sin dependencias nuevas.
- analytics.ts: filterSales, productTotals, customerTotals, dateRange,
  uniqueProducts/Customers, hasActiveFilters, EMPTY_FILTERS (funciones puras).
- fetchDashboard ahora trae solo /api/sales (1 request en vez de 3); el dashboard
  deriva by-product/by-customer del set filtrado.
- Estado de 'sin resultados para los filtros' con reset. Self-heal de cold start
  intacto (ahora basado en sales.length).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
connect-analyzer Ready Ready Preview, Comment Jun 1, 2026 10:13pm

@aitorevi aitorevi merged commit c11f060 into main Jun 1, 2026
4 checks passed
@aitorevi aitorevi deleted the feat/dashboard-filters branch June 1, 2026 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant