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,