batchCooking/apps/web/src/features/recipes
Nicolas b5a12cf489 feat(recipes): onglet Sources — parcourir les recettes externes (étape 2/4)
Deuxième étape du chantier "onglet Sources" : l'UI de parcours, construite
contre les endpoints backend de l'étape 1 (#45). L'onglet désactivé
placeholder de RecipeTabs devient un vrai onglet fonctionnel.

- RecipeTabs.tsx : nouveau type RecipesPageTab (RecipeTab | "sources") —
  gardé hors du type partagé RecipeTab puisque l'API n'a pas de
  tab=sources à valider. Un prop `tabs` optionnel restreint quels onglets
  s'affichent — RecipePickerDialog (choix d'une recette pour un planning)
  s'y restreint aux 4 onglets réels, parcourir des sources externes en
  plein milieu de ce dialogue n'a pas de sens sans le flux de revue/import.
- Nouveau RecipeSourcesPanel.tsx : contenu de l'onglet "Sources" —
  autonome (son propre master-detail), ne partage pas le fetching
  RecipeTab de RecipesPage puisqu'il parcourt le catalogue *live* d'une
  source (GET /sources/:key/browse), pas la table Recipe sauvegardée.
  Sélecteur de source si le foyer en a activé plusieurs ; sélectionner un
  item déjà importé navigue directement vers la vraie recette
  (SourceItemTable + navigate), un item pas encore importé affiche un
  aperçu en lecture seule (SourceItemPreviewPanel, réutilise
  StepDescription — les tech steps sont donc déjà surlignés dans
  l'aperçu).
- Bug trouvé et corrigé en écrivant le scénario Cypress : cliquer un item
  déjà importé changeait l'URL mais restait affiché sur l'onglet Sources
  (RecipesPage ne rend RecipeDetailPanel/RecipeTable qu'en dehors de
  l'onglet "sources"). RecipeSourcesPanel prend maintenant un callback
  `onViewImportedRecipe` pour repasser sur un onglet réel avant de
  naviguer.

Tests : nouveau recipe-sources.feature (parcours utilisateur complet —
onglet vide, parcours avec items importés/non importés, aperçu avec
surlignage de technique) ; recipes.cy.ts corrigé (assertion obsolète sur
l'ancien placeholder désactivé). Étape suivante (3/4) : écran de revue
(corriger les ingrédients non résolus) + finalisation de l'import.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 16:14:20 +02:00
..
AllergenBadges.tsx chore(web): session de polish global — version, checkbox, danger zone, icônes (#20) 2026-08-18 20:52:12 +02:00
DietBadges.tsx chore(web): session de polish global — version, checkbox, danger zone, icônes (#20) 2026-08-18 20:52:12 +02:00
DietTagSelect.tsx chore(web): session de polish global — version, checkbox, danger zone, icônes (#20) 2026-08-18 20:52:12 +02:00
FavoriteStarButton.tsx chore(web): session de polish global — version, checkbox, danger zone, icônes (#20) 2026-08-18 20:52:12 +02:00
highlight-tech-steps.ts feat(recipes): surligne les tech steps détectés dans les étapes, avec tooltip 2026-08-20 14:46:15 +02:00
ingredient-icons.tsx refactor(catalog): authoring 100% anglais — uid camelCase, plus de français dans le code 2026-08-19 20:40:55 +02:00
IngredientPicker.tsx feat(recipes): flag les ingrédients faisables maison + suggestion de recherche 2026-08-19 19:09:39 +02:00
IngredientRow.tsx feat(recipes): catalogue de référence pour les unités d'ingrédients 2026-08-19 22:34:57 +02:00
RecipeDetailPanel.tsx feat(recipes): surligne les tech steps détectés dans les étapes, avec tooltip 2026-08-20 14:46:15 +02:00
recipes.scss feat(recipes): onglet Sources — parcourir les recettes externes (étape 2/4) 2026-08-20 16:14:20 +02:00
RecipeSourcesPanel.tsx feat(recipes): onglet Sources — parcourir les recettes externes (étape 2/4) 2026-08-20 16:14:20 +02:00
RecipeTable.tsx feat(recipes): catalogue v2 - visibilité, favoris, régimes et catalogue d'ingrédients exhaustif 2026-08-18 09:29:11 +02:00
RecipeTabs.tsx feat(recipes): onglet Sources — parcourir les recettes externes (étape 2/4) 2026-08-20 16:14:20 +02:00
ReproducibleBadge.tsx feat(recipes): flag les ingrédients faisables maison + suggestion de recherche 2026-08-19 19:09:39 +02:00
SourceItemPreviewPanel.tsx feat(recipes): onglet Sources — parcourir les recettes externes (étape 2/4) 2026-08-20 16:14:20 +02:00
SourceItemTable.tsx feat(recipes): onglet Sources — parcourir les recettes externes (étape 2/4) 2026-08-20 16:14:20 +02:00
StepDescription.tsx feat(recipes): surligne les tech steps détectés dans les étapes, avec tooltip 2026-08-20 14:46:15 +02:00
StepListEditor.tsx chore(web): session de polish global — version, checkbox, danger zone, icônes (#20) 2026-08-18 20:52:12 +02:00