feat(recipes): refond le panneau de correction des métadonnées de tech-step #30

Merged
kyuno merged 1 commit from feat/tech-step-metadata-editor-redesign into feat/tech-step-temperature-correction 2026-09-05 08:05:55 +02:00
Owner

Contexte

Empilée sur #29 (la base back-end : temperatures dans submitTechStepCorrectionSchema + persistance). Suite à la maquette validée, cette PR redessine TechStepCorrectionPopover et branche l'édition de la température côté front — jusqu'ici la seule des 4 métadonnées sans aucune interface.

Changement

  • StepDescription.tsx : le surlignage de température devient cliquable (un <button>, plus un <span> mort) — rouvre le popover de correction de la technique à laquelle il est rattaché (findTechStepForTemperature, résolu par span puisque la température est une métadonnée de clause comme les ingrédients/ustensiles, pas une entité à elle seule).
  • TechStepCorrectionPopover.tsx (réécrit) :
    • Les 4 sections (Technique, Ingrédients, Ustensiles, Température) restent toutes visibles en même temps — plus de bascule de tout le popover vers un sous-écran pendant l'ajout d'un ingrédient/ustensile/température ; seule la section concernée affiche son propre mini-formulaire.
    • Le picker de technique se cache derrière "Changer" une fois une technique choisie.
    • Chaque ingrédient/ustensile/température attaché s'affiche en ligne avec sa citation exacte du texte source (la traçabilité existait déjà en donnée, elle n'était affichée nulle part).
    • Nouveau sélecteur à 3 modes (°C / Thermostat / Qualitatif) pour la température, cohérent avec le modèle de données (un seul des trois à la fois).
    • Icônes SVG par catégorie, même langage stroke-based que layouts/nav-icons.tsx.
  • recipes.scss : nouveau langage visuel (sections avec icône, lignes de métadonnées façon carte, bouton "+ Ajouter" en pointillés, sélecteurs segmentés). .step-tech-step/.step-temperature passent de cursor: help à cursor: pointer (les deux sont maintenant de vrais déclencheurs cliquables).
  • i18n : nouvelles clés (changeTechnique, temperatureSection, addTemperature, removeTemperature, temperatureMode.*) ; currentTechnique supprimée ; préfixe "+ " retiré de addIngredient/addUtensil.

Tests

  • TechStepCorrectionPopover.cy.tsx largement réécrit (10 tests, dont 2 nouveaux sur la température).
  • recipes.feature/recipes.ts : nouveau scénario Gherkin "cliquer un surlignage de température rouvre le popover de sa technique" (fixture dédiée), step "Changer" ajouté au scénario de relabel existant.

pnpm lint + pnpm build (shared/api/web) clean. Exécuté localement (Chrome headless) : TechStepCorrectionPopover.cy.tsx 10/10, suite component complète 50/50, recipes.feature 5/5, recipes.cy.ts 8/8, recipe-sources.feature 6/6, planning-page.cy.ts 7/7. Un échec dans recipe-form.feature ("Preloads an existing recipe's ingredients when editing") est pré-existant et sans rapport — reproduit à l'identique avec ce travail entièrement stashé (testé explicitement).

🤖 Generated with Claude Code

## Contexte Empilée sur [#29](https://git.dev.kyuno.fr/kyuno/batchCooking/pulls/29) (la base back-end : `temperatures` dans `submitTechStepCorrectionSchema` + persistance). Suite à la maquette validée, cette PR redessine `TechStepCorrectionPopover` et branche l'édition de la température côté front — jusqu'ici la seule des 4 métadonnées sans aucune interface. ## Changement - **`StepDescription.tsx`** : le surlignage de température devient cliquable (un `<button>`, plus un `<span>` mort) — rouvre le popover de correction de la technique à laquelle il est rattaché (`findTechStepForTemperature`, résolu par span puisque la température est une métadonnée de clause comme les ingrédients/ustensiles, pas une entité à elle seule). - **`TechStepCorrectionPopover.tsx`** (réécrit) : - Les 4 sections (Technique, Ingrédients, Ustensiles, Température) restent **toutes visibles en même temps** — plus de bascule de tout le popover vers un sous-écran pendant l'ajout d'un ingrédient/ustensile/température ; seule la section concernée affiche son propre mini-formulaire. - Le picker de technique se cache derrière "Changer" une fois une technique choisie. - Chaque ingrédient/ustensile/température attaché s'affiche en ligne avec **sa citation exacte du texte source** (la traçabilité existait déjà en donnée, elle n'était affichée nulle part). - Nouveau sélecteur à 3 modes (°C / Thermostat / Qualitatif) pour la température, cohérent avec le modèle de données (un seul des trois à la fois). - Icônes SVG par catégorie, même langage stroke-based que `layouts/nav-icons.tsx`. - **`recipes.scss`** : nouveau langage visuel (sections avec icône, lignes de métadonnées façon carte, bouton "+ Ajouter" en pointillés, sélecteurs segmentés). `.step-tech-step`/`.step-temperature` passent de `cursor: help` à `cursor: pointer` (les deux sont maintenant de vrais déclencheurs cliquables). - **i18n** : nouvelles clés (`changeTechnique`, `temperatureSection`, `addTemperature`, `removeTemperature`, `temperatureMode.*`) ; `currentTechnique` supprimée ; préfixe `"+ "` retiré de `addIngredient`/`addUtensil`. ## Tests - `TechStepCorrectionPopover.cy.tsx` largement réécrit (10 tests, dont 2 nouveaux sur la température). - `recipes.feature`/`recipes.ts` : nouveau scénario Gherkin "cliquer un surlignage de température rouvre le popover de sa technique" (fixture dédiée), step "Changer" ajouté au scénario de relabel existant. `pnpm lint` + `pnpm build` (shared/api/web) clean. Exécuté localement (Chrome headless) : `TechStepCorrectionPopover.cy.tsx` 10/10, suite component complète 50/50, `recipes.feature` 5/5, `recipes.cy.ts` 8/8, `recipe-sources.feature` 6/6, `planning-page.cy.ts` 7/7. Un échec dans `recipe-form.feature` ("Preloads an existing recipe's ingredients when editing") est **pré-existant et sans rapport** — reproduit à l'identique avec ce travail entièrement stashé (testé explicitement). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
kyuno added 1 commit 2026-09-05 00:22:23 +02:00
feat(recipes): refond le panneau de correction des métadonnées de tech-step
All checks were successful
CI / lint (push) Successful in 2m35s
CI / build (push) Successful in 2m38s
CI / intent-service-test (push) Successful in 4m23s
CI / e2e (push) Successful in 8m0s
CI / test (push) Successful in 15m1s
6c5978dd1c
Suite à la maquette validée : redessine TechStepCorrectionPopover et ajoute
l'édition de la température, jusqu'ici la seule des 4 métadonnées sans
aucune interface (ni dans l'UI, ni côté API — voir la PR back-end empilée
sous celle-ci).

- StepDescription.tsx : le surlignage de température devient cliquable
  (un <button>, plus un <span> mort) — rouvre le popover de correction de
  la technique à laquelle il est rattaché (findTechStepForTemperature,
  résolu par span puisque la température n'a pas d'existence propre, elle
  est une métadonnée de clause comme les ingrédients/ustensiles).
- TechStepCorrectionPopover.tsx : réécrit. Les 4 sections (Technique,
  Ingrédients, Ustensiles, Température) restent toutes visibles en même
  temps — plus de bascule de tout le popover vers un sous-écran pendant
  l'ajout d'un ingrédient/ustensile/température, seule la section
  concernée affiche son propre mini-formulaire, les autres (dont le
  picker de technique) restent inchangées à côté. Le picker de technique
  se cache derrière "Changer" une fois une technique choisie (rien à
  décider une fois confirmée correcte). Chaque ingrédient/ustensile/
  température attaché s'affiche en ligne avec sa citation exacte du texte
  source (nouveau : la traçabilité vers le texte existait déjà en donnée,
  mais n'était affichée nulle part). Nouveau sélecteur à 3 modes
  (°C / Thermostat / Qualitatif) pour la température, cohérent avec le
  modèle de données (un seul des trois à la fois). Icônes SVG par
  catégorie (tag/feuille/poêle/thermomètre), même langage stroke-based
  que layouts/nav-icons.tsx.
- recipes.scss : nouveau langage visuel du popover (sections avec icône,
  lignes de métadonnées façon carte plutôt que puces, bouton "+ Ajouter"
  en pointillés plutôt qu'un lien texte, sélecteurs segmentés). Les deux
  surlignages (.step-tech-step, .step-temperature) passent de
  `cursor: help` à `cursor: pointer` — les deux sont maintenant de vrais
  déclencheurs cliquables.
- i18n : nouvelles clés (changeTechnique, temperatureSection,
  addTemperature, removeTemperature, temperatureMode.*) ; clé
  currentTechnique supprimée (le pictogramme remplace la phrase "Technique
  retenue : X") ; préfixe "+ " retiré de addIngredient/addUtensil (l'icône
  + le porte déjà visuellement).
- Tests : TechStepCorrectionPopover.cy.tsx largement réécrit (10 tests,
  dont 2 nouveaux sur la température) ; recipes.feature/recipes.ts : nouveau
  scénario Gherkin "cliquer un surlignage de température rouvre le popover
  de sa technique" (fixture Gratin dédiée), step "Changer" ajouté au
  scénario de relabel existant.

Vérifié : pnpm lint + build (shared/api/web) clean. Suites Cypress
exécutées localement (Chrome headless) : TechStepCorrectionPopover.cy.tsx
10/10, suite component complète 50/50, recipes.feature 5/5, recipes.cy.ts
8/8, recipe-sources.feature 6/6, planning-page.cy.ts 7/7. Un échec
pré-existant et sans rapport (recipe-form.feature, "Preloads an existing
recipe's ingredients when editing") reproduit identiquement avec ce
travail entièrement stashé — confirmé non lié.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
kyuno merged commit df9693ffac into feat/tech-step-temperature-correction 2026-09-05 08:05:55 +02:00
Sign in to join this conversation.
No reviewers
No milestone
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: kyuno/batchCooking#30
No description provided.