From d7191983bd5ccd51ccb1e98dd2ea4a7fe9010e6e Mon Sep 17 00:00:00 2001 From: Michael Genson <71845777+michael-genson@users.noreply.github.com> Date: Mon, 28 Jul 2025 02:50:50 -0500 Subject: [PATCH] fix: JSON Editor Breaks On Invalid JSON (#5814) Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com> --- .../Domain/Recipe/RecipePage/RecipePage.vue | 4 ++-- frontend/components/global/RecipeJsonEditor.vue | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/frontend/components/Domain/Recipe/RecipePage/RecipePage.vue b/frontend/components/Domain/Recipe/RecipePage/RecipePage.vue index 46eda6bbc..6a1f9a3d4 100644 --- a/frontend/components/Domain/Recipe/RecipePage/RecipePage.vue +++ b/frontend/components/Domain/Recipe/RecipePage/RecipePage.vue @@ -81,7 +81,7 @@ @@ -278,7 +278,7 @@ async function deleteRecipe() { * View Preferences */ const landscape = computed(() => { - const preferLandscape = recipe.value.settings.landscapeView; + const preferLandscape = recipe.value.settings?.landscapeView; const smallScreen = !$vuetify.display.smAndUp.value; if (preferLandscape) { diff --git a/frontend/components/global/RecipeJsonEditor.vue b/frontend/components/global/RecipeJsonEditor.vue index a90e1e8be..a5d3dc55a 100644 --- a/frontend/components/global/RecipeJsonEditor.vue +++ b/frontend/components/global/RecipeJsonEditor.vue @@ -26,10 +26,10 @@ export default defineComponent({ }, }, emits: ["update:modelValue"], - setup(_, { emit }) { + setup(props, { emit }) { function parseEvent(event: any): object { if (!event) { - return {}; + return props.modelValue || {}; } try { if (event.json) { @@ -43,11 +43,14 @@ export default defineComponent({ } } catch { - return {}; + return props.modelValue || {}; } } function onChange(event: any) { - emit("update:modelValue", parseEvent(event)); + const parsed = parseEvent(event); + if (parsed !== props.modelValue) { + emit("update:modelValue", parsed); + } } return { onChange,