bugfix(reports): tendances ouvrent en byCategory+table (paie visible) (#262) #266
No reviewers
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
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#266
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-262-trends-default-view"
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?
Resolves #262
Generated autonomously by /autopilot run of 2026-07-07
Résumé
Le rapport Tendances (
/reports/trends) s'ouvrait sur le graphique mensuel global, qui n'a pas de section revenus — la paie de l'utilisateur restait invisible tant qu'il ne basculait pas manuellement sur la vue « Par catégorie » en tableau. Cette vue plate a déjà une section income depuis la v0.12.0.Le rapport ouvre désormais sur
byCategory+tablepar défaut, rendant la section revenus (donc la paie) visible d'emblée. Insurance pour la plainte #260 si le chantier lourd (#264/#265) ne se termine pas.Deux changements one-liner, tous deux scopés à Trends :
src/hooks/useTrends.ts—subViewinitial"global"→"byCategory"src/pages/ReportsTrendsPage.tsx— fallbackreadViewMode(STORAGE_KEY, "table")(le fallback est un paramètre du call-site)ViewModeToggle.tsxnon touché (le défaut est déjà isolé par rapport via la clé de storage).Critères d'acceptation
byCategory+table✅reports-viewmode-compare) inchangé ✅ (aucune modif du call-site compare ni deViewModeToggle)Décisions
subView: 'global'ni le fallback Trends → rien à mettre à jour côté tests. Les testsreadViewModeportent sur les clés highlights/compare (fonction pure), non affectés.Fichiers
src/hooks/useTrends.tssrc/pages/ReportsTrendsPage.tsxCHANGELOG.md(Changed)CHANGELOG.fr.md(Modifié)/pr-review — PR #266 (résout #262)
Verdict : APPROVE ✅
Résumé
Deux swaps de constantes bien scopés qui font ouvrir Tendances sur
byCategory+table, rendant la section Revenus (donc la paie, plainte #260) visible d'emblée. Changement type-safe, aucune régression sur les autres rapports, aucune migration.Vérifié
"byCategory"∈TrendsSubView(useTrends.ts:6),"table"∈ViewMode, etreadViewMode(key, fallback: ViewMode = "chart")accepte bien le 2ᵉ argument (pré-existant, introduit en5ade865— non touché par cette PR).readViewModeutilisent des clés de storage distinctes —reports-viewmode-trends(modifié),reports-viewmode-compareetreports-viewmode-highlights(call-sites inchangés, défaut"chart"). Compare et Highlights ne bougent pas d'un octet.CategoryOverTimeTable→computeOverTimeResultsproduit des sectionsincome/expense/transfer. EtgetCategoryOverTime(reportService.ts:112) sélectionne toutes les catégories sans filtre de type (top N par magnitude, avectypes), donc la paie est dans le dataset pour la vue graphique comme tableau.### Added/### Ajoutépuis### Changed/### Modifiésous[Unreleased]/[Non publié], ordre canonique Keep a Changelog, pas de heading dupliqué. Entrées dans les deux langues.reports.trends.subview*) et modes (reports.viewMode.*) existent déjà.64ae00a), diff = 4 fichiers / +10 −2, cohérent avec la PR.Suggestions (non bloquantes)
Pas de test de régression alors que l'issue est
type:bug. Un garde-fou sur les deux nouveaux défauts (subView initial"byCategory"dansuseTrends; viewMode"table"quandlocalStorageest vide) échouerait sur l'ancien code et passerait sur le nouveau — il verrouillerait le comportement lié à #260 contre un revert distrait. Je ne bloque pas : ce sont des constantes pures sans logique de branchement, et un vrai test demanderaitrenderHook+ services mockés (ou un render de page avec i18n/router), coût non négligeable pour un change-detector. À considérer si tu veux figer l'intention.Nuance CHANGELOG : « la vue que vous choisissez reste mémorisée » est vrai pour le mode graphique/tableau (persisté), mais pas pour le choix Global / Par catégorie — le
subViewn'est jamais persisté et se réinitialise àbyCategoryà chaque visite (comportement pré-existant, ex-global). Un utilisateur qui préfère « Global » devra rebasculer à chaque ouverture. Formulation à préciser éventuellement, sinon acceptable comme copy produit.Portée réelle du fallback
"table": l'effet de montage deViewModeToggle(localStorage.setItemau mount) persisteviewModedès la 1ʳᵉ ouverture historique de Tendances. Les utilisateurs existants ont donc déjàreports-viewmode-trendsrenseigné → le fallback"table"ne touche que les utilisateurs vraiment neufs. La moitié qui porte le fix pour tout le monde, c'est le passagesubView → byCategory(paie visible en graphique et tableau). Conforme au cadrage « insurance » de la PR — aucune action requise.Le type de commit
bugfix(...)diffère dufix(...)conventionnel, mais aucun commitlint dans le repo et les préfixes y sont libres (polish,state, …) — purement stylistique.Rien de bloquant. Bon à merger.
Mergée localement dans
main(pile #266/#267/#268/#269, tipfe87313). Fermée manuellement — merge local d'une pile stackée (l'API merge Forgejo échoue sur les bases non-main), tip cumulé validé build + 728 vitest verts.Pull request closed