From 73d86f6f6b92d29e53f212b3c0c84a84a02c0449 Mon Sep 17 00:00:00 2001
From: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Date: Sat, 14 Feb 2026 00:34:17 -0600
Subject: [PATCH] feat: Further improve recipe filter search and shopping list
and recipe ingredient editor (#7063)
---
.../Domain/Recipe/RecipeIngredientEditor.vue | 20 ++-
.../Domain/Recipe/RecipeIngredientHtml.vue | 3 +-
.../Recipe/RecipeIngredientListItem.vue | 3 +-
.../Domain/Recipe/RecipeIngredients.vue | 4 +-
.../RecipePageInstructions.vue | 3 +-
.../RecipePageParts/RecipePageParseDialog.vue | 4 +-
.../Domain/Recipe/RecipePrintView.vue | 4 +-
frontend/components/Domain/SearchFilter.vue | 79 ++----------
frontend/components/global/InputLabelType.vue | 13 +-
.../use-extract-ingredient-references.test.ts | 31 +++--
.../use-extract-ingredient-references.ts | 48 ++++---
frontend/composables/recipes/index.ts | 2 +-
.../recipes/use-recipe-ingredients.test.ts | 12 +-
.../recipes/use-recipe-ingredients.ts | 78 ++++++------
frontend/composables/use-search.ts | 117 ++++++++++++++++++
frontend/composables/use-utils.ts | 6 +
16 files changed, 267 insertions(+), 160 deletions(-)
create mode 100644 frontend/composables/use-search.ts
diff --git a/frontend/components/Domain/Recipe/RecipeIngredientEditor.vue b/frontend/components/Domain/Recipe/RecipeIngredientEditor.vue
index e4af104c2..937b7e6a8 100644
--- a/frontend/components/Domain/Recipe/RecipeIngredientEditor.vue
+++ b/frontend/components/Domain/Recipe/RecipeIngredientEditor.vue
@@ -58,8 +58,8 @@
density="compact"
variant="solo"
return-object
- :items="units || []"
- :custom-filter="normalizeFilter"
+ :items="filteredUnits"
+ :custom-filter="() => true"
item-title="name"
class="mx-1"
:placeholder="$t('recipe.choose-unit')"
@@ -117,8 +117,8 @@
density="compact"
variant="solo"
return-object
- :items="foods || []"
- :custom-filter="normalizeFilter"
+ :items="filteredFoods"
+ :custom-filter="() => true"
item-title="name"
class="mx-1 py-0"
:placeholder="$t('recipe.choose-food')"
@@ -176,7 +176,6 @@
variant="solo"
return-object
:items="search.data.value || []"
- :custom-filter="normalizeFilter"
item-title="name"
class="mx-1 py-0"
:placeholder="$t('search.type-to-search')"
@@ -227,11 +226,11 @@