[feat] Etendre useReportsPeriod : filtre compte (accountIds) + type ReportFilters #272

Closed
opened 2026-07-09 00:37:56 +00:00 by maximus · 0 comments
Owner

Etendre le hook partage useReportsPeriod avec le filtre compte (multi-comptes), de facon additive (pas de rename — 6 consommateurs en dependent). Ajoute accountIds: number[] URL-backed + le type ReportFilters. Fondation de la slice filtres de l'epic #260.

Fichiers concernes

  • src/hooks/useReportsPeriod.ts
  • src/shared/types/index.ts
  • test du hook

Depends on

  • (aucune)

Criteres d'acceptation

  • useReportsPeriod expose accountIds: number[] + setAccountIds, URL-backed (param query dedie, ex. sources)
  • Nouveau type ReportFilters { period, accountIds } dans shared/types
  • Parsing URL valide accountIds en entiers finis (rejette non-numerique), defaut [] (= aucun filtre)
  • Les 6 consommateurs (useTrends, useCompare, useCategoryZoom, ReportsCategoryPage, ReportsPage, ReportsComparePage) compilent inchanges (extension additive)
  • Tests unitaires : serialisation URL, defaut, validation entiers
  • build (tsc+vite) + npm test verts

Decisions prises

  • Multi-comptes (accountIds: number[]), pas singulier — arbitre apres analyse (debloque le sous-ensemble coherent, cas le plus pertinent pour un etat de resultat).
  • Hook additif, pas renomme : un rename casserait la compilation des 6 consommateurs et I1 doit etre vert seul.

Spec source

spec-plan-rapports-uniformes-suite.md

Etendre le hook partage `useReportsPeriod` avec le filtre compte (multi-comptes), de facon **additive** (pas de rename — 6 consommateurs en dependent). Ajoute `accountIds: number[]` URL-backed + le type `ReportFilters`. Fondation de la slice filtres de l'epic #260. ## Fichiers concernes - `src/hooks/useReportsPeriod.ts` - `src/shared/types/index.ts` - test du hook ## Depends on - (aucune) ## Criteres d'acceptation - [ ] `useReportsPeriod` expose `accountIds: number[]` + `setAccountIds`, URL-backed (param query dedie, ex. `sources`) - [ ] Nouveau type `ReportFilters { period, accountIds }` dans `shared/types` - [ ] Parsing URL valide `accountIds` en entiers finis (rejette non-numerique), defaut `[]` (= aucun filtre) - [ ] Les 6 consommateurs (`useTrends`, `useCompare`, `useCategoryZoom`, `ReportsCategoryPage`, `ReportsPage`, `ReportsComparePage`) compilent inchanges (extension additive) - [ ] Tests unitaires : serialisation URL, defaut, validation entiers - [ ] build (tsc+vite) + `npm test` verts ## Decisions prises - Multi-comptes (`accountIds: number[]`), pas singulier — arbitre apres analyse (debloque le sous-ensemble coherent, cas le plus pertinent pour un etat de resultat). - Hook **additif**, pas renomme : un rename casserait la compilation des 6 consommateurs et I1 doit etre vert seul. ## Spec source spec-plan-rapports-uniformes-suite.md
maximus added this to the overnight-2026-07-08-filtres-fondation milestone 2026-07-09 00:37:56 +00:00
maximus added the
status:ready
type:feature
source:human
labels 2026-07-09 00:37:56 +00:00
maximus added
status:review
and removed
status:ready
labels 2026-07-11 19:02:39 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-07-11 20:10:41 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#272
No description provided.