[Liste de courses] État « acheté » cochable sur les articles #109
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Résumé
Permettre de cocher un article de la liste de courses comme « acheté » (utile en magasin, notamment au doigt sur mobile). C'est une évolution, pas un correctif : la page est aujourd'hui volontairement en lecture seule.
Contexte (trouvé en auditant le code, pas supposé)
apps/web/src/pages/shopping-list/ShoppingListPage.tsx— aucune case à cocher, aucun handler. Chaque ligne est un<li className="shopping-list__item">avec 3<span>(icône / nom / quantité), zéroonClick/onTouch*/role/tabIndex.ShoppingListPage.tsx(lignes 21–30, « Deliberately simple by design — a read-only list »),specs/frontend-architecture.md§Liste de courses, et le commit7d1a69c(PR #90) qui a spécifiquement ré-audité ce point et conclu « la page n'a pas de case à cocher, c'est volontaire ».apps/web/src/api/client.ts: seule méthode liste de courses =getShoppingListForWeek(date)(GET /shopping-list?date=…). Aucun endpoint de mutation.Contenu attendu
Décision de design à acter : ajouter un état « acheté » par article. À cadrer :
localStoragepar semaine (motifCookingProgressStore/apps/web/src/pages/cooking-session/cooking-progress.ts, clébatchcooking:cookingProgress:<weekStart>) vs. état serveur (nouveau champ / table + endpoint). LelocalStoragepar semaine est cohérent avec l'existant et évite un aller-retour back.ingredient.id+unit.id(déjà lakeyde la ligne).CheckboxOption(apps/web/src/components/ui/Checkbox.tsx), style « barré » quand coché ; cible tactile ≥ 44 px sous le breakpoint phone.Mettre à jour la JSDoc de
ShoppingListPage.tsxetspecs/frontend-architecture.md(le « lecture seule volontaire » n'est plus vrai).Couverture : composant (
CheckboxOptiondéjà couvert) + e2e Gherkin « cocher un article » dansshopping-list.feature+ spec layout pour la cible tactile.Dépendances
Revient sur la décision de #90 (liste volontairement en lecture seule).