feat: trends report — global flow + by category (#72) #91
No reviewers
Labels
No labels
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#91
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-72-trends"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #72
Implémentation du rapport
/reports/trendsavec deux sous-vues accessibles via un toggle interne.Changements
ReportsTrendsPagecomplète :PeriodSelector, sous-toggle global/byCategory,ViewModeToggle(storage keyreports-viewmode-trends), back arrow vers le hub qui préserve la query stringMonthlyTrendsChart,MonthlyTrendsTable,CategoryOverTimeChart,CategoryOverTimeTable)useTrends+useReportsPeriod→ la période est partagée via query string avec le hubreports.trends.subviewGlobal/subviewByCategoryen FR et ENTests
npm run build✅npm test✅ 42/42 (aucun nouveau test, réutilisation des composants déjà couverts)cargo check✅Review — APPROVE
Réutilisation pure des composants existants, aucune duplication de logique. Le câblage sur
useTrends+useReportsPeriodest cohérent avec #71, la query string est préservée au retour vers le hub, et le toggle chart/table persiste viastorageKey.Sécurité ✅
reportServicedéjà paramétré)Correctness ✅
noOpDetailsest explicite pour désactiver la navigation de détails dans ce contexte (détails accessibles depuis /category en #74)hiddenCategoriessont local-state de la page — cohérent avec l`ancien comportementQualité ✅
npm run build✅npm test✅ 42/42cargo check✅Non-bloquant
noOpDetails(_item: CategoryBreakdownItem→ {}) est OK mais pourrait devenir un prop optional dansCategoryOverTimeChart— amélioration ultérieure, pas bloquantReady to merge.