diff --git a/frontend/components/Domain/ShoppingList/ShoppingListItemEditor.vue b/frontend/components/Domain/ShoppingList/ShoppingListItemEditor.vue index 249e3f121b0e..5b0f12611f45 100644 --- a/frontend/components/Domain/ShoppingList/ShoppingListItemEditor.vue +++ b/frontend/components/Domain/ShoppingList/ShoppingListItemEditor.vue @@ -25,6 +25,7 @@ :label="$t('shopping-list.note')" rows="1" auto-grow + @keypress="handleNoteKeyPress" >
@@ -142,5 +143,14 @@ export default defineComponent({ listItem, }; }, + methods: { + handleNoteKeyPress(event) { + // Save on Enter + if (!event.shiftKey && event.key === "Enter") { + event.preventDefault(); + this.$emit("save"); + } + }, + } }); diff --git a/frontend/pages/shopping-lists/_id.vue b/frontend/pages/shopping-lists/_id.vue index 9dabc3ae1e42..c5bdd2cc8249 100644 --- a/frontend/pages/shopping-lists/_id.vue +++ b/frontend/pages/shopping-lists/_id.vue @@ -665,6 +665,11 @@ export default defineComponent({ return; } + if (!createListItemData.value.foodId && !createListItemData.value.note) { + // don't create an empty item + return; + } + loadingCounter.value += 1; // make sure it's inserted into the end of the list, which may have been updated @@ -676,7 +681,6 @@ export default defineComponent({ if (data) { createListItemData.value = listItemFactory(createListItemData.value.isFood || false); - createEditorOpen.value = false; refresh(); } }