From 21a3622e6c5a6bac351bfdc2a2c74d3773b6db26 Mon Sep 17 00:00:00 2001 From: Arnaud Date: Fri, 17 Jul 2026 23:28:34 +0200 Subject: [PATCH] fix: cramped ingredient/step rows on mobile in recipe editor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both rows packed 4+ inline fields (grip handle, quantity, unit, name, note for ingredients; step number, textarea, timer, delete for steps) into a single flex row with no mobile-aware wrap plan — flex-wrap on ingredients caused the delete button to float disconnected from its row, and steps had no wrap at all, squeezing the textarea down to a sliver. Both now split into two grouped rows below sm: breakpoint (core fields, then secondary field + delete) and collapse back to one row on larger screens. Not visually verified in a browser — this sandbox has no DB/dev server running (Docker unavailable), so this is typecheck+lint verified only. v0.46.2 --- CHANGELOG.md | 5 + apps/web/components/recipe/recipe-form.tsx | 128 +++++++++++---------- apps/web/lib/changelog.ts | 9 +- apps/web/package.json | 2 +- package.json | 2 +- 5 files changed, 83 insertions(+), 63 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cee527f..20b2777 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ All notable changes to Epicure are documented here. This file is mirrored in-app at `/changelog` (and in the admin dashboard) via `apps/web/lib/changelog.ts` — update both together. +## 0.46.2 — 2026-07-17 19:20 + +### Fixed +- Recipe editor's ingredient and step rows were cramped on mobile — 4 inline fields plus a timer/delete button squeezed into one row with no real wrap plan. Both now stack sanely on narrow screens (name/quantity/unit on one line, note/timer + delete on the next) and stay a single row on larger screens. + ## 0.46.1 — 2026-07-17 19:05 ### Fixed diff --git a/apps/web/components/recipe/recipe-form.tsx b/apps/web/components/recipe/recipe-form.tsx index bf4c1ca..2c11007 100644 --- a/apps/web/components/recipe/recipe-form.tsx +++ b/apps/web/components/recipe/recipe-form.tsx @@ -691,40 +691,44 @@ export function RecipeForm({ recipeId, defaultValues }: RecipeFormProps) {
{ingredients.map((ing, i) => ( -
- - updateIngredient(i, { quantity: e.target.value })} - placeholder={t("amount")} - className="w-14 sm:w-16 shrink-0" - /> - updateIngredient(i, { unit: e.target.value })} - placeholder={t("unit")} - className="w-16 sm:w-24 shrink-0" - /> - updateIngredient(i, { rawName: e.target.value })} - placeholder={t("ingredient")} - className="flex-1 min-w-[100px]" - /> - updateIngredient(i, { note: e.target.value })} - placeholder={t("note")} - className="w-full sm:w-48 sm:shrink-0" - /> - +
+
+ + updateIngredient(i, { quantity: e.target.value })} + placeholder={t("amount")} + className="w-16 shrink-0" + /> + updateIngredient(i, { unit: e.target.value })} + placeholder={t("unit")} + className="w-16 sm:w-24 shrink-0" + /> + updateIngredient(i, { rawName: e.target.value })} + placeholder={t("ingredient")} + className="flex-1 min-w-0" + /> +
+
+ updateIngredient(i, { note: e.target.value })} + placeholder={t("note")} + className="flex-1 sm:w-48 sm:shrink-0" + /> + +
))}
@@ -835,33 +839,37 @@ export function RecipeForm({ recipeId, defaultValues }: RecipeFormProps) {
{steps.map((step, i) => (
-
-
- {i + 1} +
+
+
+ {i + 1} +
+