feat(gating): routes + Sidebar (budget, rapports avances, bilan) #299

Closed
opened 2026-07-19 21:18:20 +00:00 by maximus · 2 comments
Owner

Appliquer le gating aux routes et a la Sidebar : Budget, Ajustements, les 4 rapports avances, le Bilan.

Fichiers concernes

  • src/App.tsx (modifier) — layout-routes RequireFeature.
  • src/shared/types (NavItem) + src/shared/constants/index.ts (modifier) — champ feature?.
  • src/components/layout/Sidebar.tsx (modifier) — cadenas.
  • src/pages/ReportsPage.tsx (modifier) — cadenas sur tuiles avancees.

Depends on

  • #298 (RequireFeature/UpsellGate)

Criteres d'acceptation

  • Layout-route feature="balance" groupe /balance, /balance/accounts, /balance/snapshot.
  • Layout-route feature="reports-advanced" groupe /reports/highlights|compare|category|cartes. PAS /reports/trends, PAS le hub /reports.
  • feature="budget" sur /budget ; feature="adjustments" sur /adjustments.
  • NavItem feature renseigne sur budget, adjustments, balance UNIQUEMENT — PAS reports (hub Free).
  • Sidebar affiche un cadenas sur un item non autorise ET ready ; l'item reste cliquable (mene a l'upsell).
  • ReportsPage (hub) : cadenas sur les tuiles des rapports avances.

Review caveats (/review-spec — a respecter)

  • CRITIQUE : NE PAS gater l'item nav reports (il pointe vers le hub Free /reports, non route-wrappe -> cliquer donnerait une page free fonctionnelle sous un cadenas).
  • Cle reports-advanced en kebab-case.
  • Grouper les routes de meme feature sous une layout-route (convention SettingsLayout/AppShell), pas 8 wrappers separes.

Decisions prises en planification

  • Ajustements (/adjustments) = Base (tranche par Max) : route + item nav gates.

Spec source

spec-decisions-feature-gating.md + spec-plan-feature-gating.md (racine, force-add ; verdict /review-spec jaune, corrections integrees).

Appliquer le gating aux routes et a la Sidebar : Budget, Ajustements, les 4 rapports avances, le Bilan. ## Fichiers concernes - `src/App.tsx` (modifier) — layout-routes RequireFeature. - `src/shared/types` (NavItem) + `src/shared/constants/index.ts` (modifier) — champ `feature?`. - `src/components/layout/Sidebar.tsx` (modifier) — cadenas. - `src/pages/ReportsPage.tsx` (modifier) — cadenas sur tuiles avancees. ## Depends on - #298 (RequireFeature/UpsellGate) ## Criteres d'acceptation - [ ] Layout-route `feature="balance"` groupe `/balance`, `/balance/accounts`, `/balance/snapshot`. - [ ] Layout-route `feature="reports-advanced"` groupe `/reports/highlights|compare|category|cartes`. PAS `/reports/trends`, PAS le hub `/reports`. - [ ] `feature="budget"` sur `/budget` ; `feature="adjustments"` sur `/adjustments`. - [ ] NavItem `feature` renseigne sur budget, adjustments, balance UNIQUEMENT — PAS `reports` (hub Free). - [ ] Sidebar affiche un cadenas sur un item non autorise ET `ready` ; l'item reste cliquable (mene a l'upsell). - [ ] ReportsPage (hub) : cadenas sur les tuiles des rapports avances. ## Review caveats (/review-spec — a respecter) - CRITIQUE : NE PAS gater l'item nav `reports` (il pointe vers le hub Free /reports, non route-wrappe -> cliquer donnerait une page free fonctionnelle sous un cadenas). - Cle `reports-advanced` en kebab-case. - Grouper les routes de meme feature sous une layout-route <Outlet/> (convention SettingsLayout/AppShell), pas 8 wrappers separes. ## Decisions prises en planification - Ajustements (`/adjustments`) = Base (tranche par Max) : route + item nav gates. ## Spec source spec-decisions-feature-gating.md + spec-plan-feature-gating.md (racine, force-add ; verdict /review-spec jaune, corrections integrees).
maximus added this to the planned-2026-07-19-feature-gating milestone 2026-07-19 21:18:20 +00:00
maximus added the
status:ready
type:feature
source:human
labels 2026-07-19 21:18:20 +00:00
Author
Owner

Corrections /review-spec :

  • Ne PAS gater l item nav reports — il pointe vers le hub Free /reports (non route-wrappe). Mettre feature sur budget et balance uniquement. Les rapports avances sont gates sur leurs sous-routes + les tuiles du hub.
  • Regrouper les routes de meme feature sous une layout-route <RequireFeature><Outlet/></RequireFeature> (balance x3, reports-advanced x4).
  • Cadenas Sidebar seulement si ready. Cle reports-advanced (kebab).
Corrections /review-spec : - **Ne PAS gater l item nav `reports`** — il pointe vers le hub Free `/reports` (non route-wrappe). Mettre `feature` sur **budget et balance uniquement**. Les rapports avances sont gates sur leurs sous-routes + les tuiles du hub. - Regrouper les routes de meme feature sous une **layout-route** `<RequireFeature><Outlet/></RequireFeature>` (balance x3, reports-advanced x4). - Cadenas Sidebar seulement si `ready`. Cle `reports-advanced` (kebab).
Author
Owner

Ajustement de perimetre : /adjustments (module Ajustements) passe en Base (tranche par Max, pas Free). Ajouter la cle adjustments (Base+) a la matrice, gater la route /adjustments (RequireFeature) + l item nav adjustments. spec-decisions + spec-plan mis a jour.

Ajustement de perimetre : `/adjustments` (module Ajustements) passe en **Base** (tranche par Max, pas Free). Ajouter la cle `adjustments` (Base+) a la matrice, gater la route `/adjustments` (RequireFeature) + l item nav `adjustments`. spec-decisions + spec-plan mis a jour.
maximus added
status:review
and removed
status:ready
labels 2026-07-21 02:14:01 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-07-21 12:06:13 +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#299
No description provided.