feat(planning): panier des restes dans l'en-tête (lecture seule + jeter) #50
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/leftovers-basket"
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?
Chantier « gestion des restes » (issue #34) — PR 3/4 : le panier. Toujours pas de glisser-déposer (PR 4) — ici, consultation + jet.
LeftoversBasketUne icône 🧺 (avec badge de compte) dans
.planning-page__header, à côté deWeekNavigator. Ouvre un popover listant les restes encore disponibles de la semaine affichée — même patron montage conditionnel + fermeture aumousedownextérieur que leCalendarPopoverdeWeekNavigator.Les lignes sont dérivées à chaque rendu de
planningparcollectLeftoverLines(leftovers-basket.ts, pur) : chaque item « frais » (sourceItem === null) dontcomputeAvailableLeftover(@batch-cooking/shared) est> 0. LeleftoverUsesque cette fonction attend est reconstitué depuis le tableau platplanning.items(les items « restes » qui pointent vers l'item) — aucun aller-retour API supplémentaire, exactement le partage « une formule, deux appelants » que documentecomputeAvailableLeftover.Chaque ligne : recette, jour/repas d'origine, portions restantes, bouton « Jeter » →
PATCH /planning/items/:id/discard-leftover(nouveauapiClient.discardLeftover). La réponse (l'item mis à jour) est patchée dansplanning.itemspar id (handleLeftoverDiscardedsurPlanningPage), donc le panier se recalcule. État vide quand rien ne reste.Tests
apps/web/cypress/e2e/leftovers-basket.cy.ts(mode layout,GET /planningmocké) :PATCHappelé, ligne retirée, badge disparu.Vérifié localement : 3/3.
build+lintverts.i18n :
planning.leftovers.*. Docs :frontend-architecture.md(arbo + description du panier).🤖 Generated with Claude Code