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();
}
}