feat(balance): tile-based landing + reachable account management (#244) #250
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#250
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-244-bilan-landing-tuiles"
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?
Replaces the /balance landing with a tile-based hub (HubReportNavCard, modeled on the Reports page) and decouples the empty-state guard into three states via the pure helper
deriveLandingState. Accounts-without-snapshot no longer forces the snapshot flow, and account management (/balance/accounts) is reachable from the landing in every state. Removes the obsolete BalanceOnboardingCard; adds balance.hub./balance.landing. i18n keys (FR+EN) and CHANGELOG entries.Resolves #244
Generated autonomously by /autopilot run of 2026-07-04
Revue PR #250 —
feat(balance): tile-based landing + reachable account management(#244)Verdict : APPROVE
Refonte propre et bien cadrée de la page d'accueil
/balance. Le garde booléen d'état vide est découplé en trois états explicites via un helper pur testé, la gestion des comptes redevient accessible en tout temps, et le composantHubReportNavCardexistant est réutilisé sans duplication. CI verte (rust + frontend sur le SHA de tête), commit conventionnel, changelog bilingue à jour.Points vérifiés
deriveLandingStatecouvre les trois états et gère le cas anormal (0 compte mais flag snapshot →empty) ainsi que les comptes négatifs. Le rendu « populated » (sélecteur de période + graphique + tableau) est préservé à l'identique ; seul un bloc de tuiles est ajouté en fin de section — pas de régression sur le tableau de bord peuplé./balance/accountset/balance/snapshotsont bien déclarées dansApp.tsx.HubReportNavCardPropsexpose exactement les 4 champs utilisés (to/icon/title/description) ; le markup derenderHubest calqué sur le hub deReportsPage(mêmes classessection/h2/grid, mêmekey={card.to}).BalanceOnboardingCard.tsx+ son test supprimés ensemble ; aucune référence de code résiduelle (vérifié par grep). Les clés i18nbalance.onboarding.*sont remplacées parbalance.hub.*/balance.landing.*dans les deux locales, JSON valide (build Vite vert).balanceLanding.test.ts(3 états + garde négative + cas anormal), suite verte en CI. Convention « helper pur sans jsdom » respectée. Aucunskip/only.t(), FR + EN synchronisés.Changed/Modifiésous[Unreleased]dans les deux fichiers.Suggestions (non bloquantes)
src/components/balance/StarterAccountsModal.test.tsx:4— commentaire qui référence « the BalanceOnboardingCard.test.tsx pattern from #178 », or ce fichier est supprimé par cette PR. Commentaire devenu périmé (purement cosmétique, hors diff).<div className="bg-[var(--card)] rounded-xl border ...">+h2+p) est dupliqué entre les étatsemptyetaccounts-no-snapshot. Extraction possible en mini-helper, mais reste lisible à deux occurrences.Aucun de ces points ne bloque le merge.
Revue générée par
/pr-review.Merged into
mainlocally as part of the milestone stack (merge commitead6294). Closing manually — the merge was done outside Forgejo's API, so it can't flag this PR as merged. The change is onmain.Pull request closed