mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-07-24 15:49:42 +02:00
feat: Display Shopping List Item Recipe Refs (#2501)
* added recipe ref display to shopping list items * added backend support for recipe notes * added recipe note to item recipe ref display * fixed note merge bug with 3+ notes * tweak display * lint * updated alembic refs --------- Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
This commit is contained in:
parent
50a92c165c
commit
d6e4829e6f
8 changed files with 247 additions and 42 deletions
|
@ -19,6 +19,7 @@
|
|||
:labels="allLabels || []"
|
||||
:units="allUnits || []"
|
||||
:foods="allFoods || []"
|
||||
:recipes="recipeMap"
|
||||
@checked="saveListItem"
|
||||
@save="saveListItem"
|
||||
@delete="deleteListItem(item)"
|
||||
|
@ -46,6 +47,7 @@
|
|||
:labels="allLabels || []"
|
||||
:units="allUnits || []"
|
||||
:foods="allFoods || []"
|
||||
:recipes="recipeMap"
|
||||
@checked="saveListItem"
|
||||
@save="saveListItem"
|
||||
@delete="deleteListItem(item)"
|
||||
|
@ -175,8 +177,8 @@
|
|||
{{ $tc('shopping-list.linked-recipes-count', shoppingList.recipeReferences ? shoppingList.recipeReferences.length : 0) }}
|
||||
</div>
|
||||
<v-divider class="my-4"></v-divider>
|
||||
<RecipeList :recipes="listRecipes">
|
||||
<template v-for="(recipe, index) in listRecipes" #[`actions-${recipe.id}`]>
|
||||
<RecipeList :recipes="Array.from(recipeMap.values())" show-description>
|
||||
<template v-for="(recipe, index) in recipeMap.values()" #[`actions-${recipe.id}`]>
|
||||
<v-list-item-action :key="'item-actions-decrease' + recipe.id">
|
||||
<v-btn icon @click.prevent="removeRecipeReferenceToList(recipe.id)">
|
||||
<v-icon color="grey lighten-1">{{ $globals.icons.minus }}</v-icon>
|
||||
|
@ -530,9 +532,10 @@ export default defineComponent({
|
|||
// =====================================
|
||||
// Add/Remove Recipe References
|
||||
|
||||
const listRecipes = computed<Array<any>>(() => {
|
||||
return shoppingList.value?.recipeReferences?.map((ref) => ref.recipe) ?? [];
|
||||
});
|
||||
const recipeMap = computed(() => new Map(
|
||||
(shoppingList.value?.recipeReferences?.map((ref) => ref.recipe) ?? [])
|
||||
.map((recipe) => [recipe.id || "", recipe]))
|
||||
);
|
||||
|
||||
async function addRecipeReferenceToList(recipeId: string) {
|
||||
if (!shoppingList.value || recipeReferenceLoading.value) {
|
||||
|
@ -741,10 +744,10 @@ export default defineComponent({
|
|||
getLabelColor,
|
||||
itemsByLabel,
|
||||
listItems,
|
||||
listRecipes,
|
||||
loadingCounter,
|
||||
preferences,
|
||||
presentLabels,
|
||||
recipeMap,
|
||||
removeRecipeReferenceToList,
|
||||
reorderLabelsDialog,
|
||||
toggleReorderLabelsDialog,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue