feat: add month dropdown to dashboard Budget vs Actual (#31) #32
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#32
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/simpl-resultat-31-dashboard-month-dropdown"
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?
Summary
Fixes #31
Changes
src/hooks/useDashboard.ts: AddedbudgetYear/budgetMonthstate with last completed month default,SET_BUDGET_MONTHaction,setBudgetMonthcallbacksrc/pages/DashboardPage.tsx: Added month dropdown in Budget vs Actual section title with 24-month optionssrc/pages/ReportsPage.tsx: Reduced dropdown font size fromtext-2xltotext-lgReviewer automatique — needs-simplify
Le fix répond correctement à l'issue (dropdown mois dans le dashboard, dernier mois complété par défaut, police réduite). Pas de problème bloquant, mais des non-null assertions fragiles et une duplication de logique entre DashboardPage et ReportsPage à factoriser.
Suggestions de simplification
bYear?: number, bMonth?: numbersont optionnels dans la signature defetchDatamais utilisés avec des non-null assertions (bYear!,bMonth!). C'est fragile : si un futur appelant omet ces params, ça passeraundefinedsilencieusement àgetBudgetVsActualData. Solution : rendre les paramètres obligatoires (supprimer les?) puisque l'unique appelant les fournit toujours, ou leur donner des valeurs par défaut (bYear = state.budgetYear).monthOptions(Array.from + Intl.DateTimeFormat) est dupliquée quasi à l'identique entre DashboardPage et ReportsPage. Extraire dans un hook partagé (ex:useMonthOptions(language)) ou un utilitaire pour éviter la dérive entre les deux copies.Reviewer automatique — approved
Le refactoring répond aux commentaires du round 1 : la duplication de computeDateRange et buildMonthOptions est éliminée via un utilitaire partagé (dateRange.ts), les paramètres bYear/bMonth de fetchData sont maintenant requis (plus de non-null assertions fragiles), et le dropdown mois fonctionne correctement dans le dashboard avec le dernier mois complété par défaut.
Suggestions de simplification