From e5adcf144ab317ec166847b102f253a0f2c7bc33 Mon Sep 17 00:00:00 2001 From: Rob Luton Date: Mon, 9 Feb 2026 16:57:31 -0600 Subject: [PATCH 1/2] emit default values onMount --- .../src/seo-interface/interface.vue | 34 +++++++++++++------ 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/packages/seo-plugin/src/seo-interface/interface.vue b/packages/seo-plugin/src/seo-interface/interface.vue index d5add537..82286ff3 100644 --- a/packages/seo-plugin/src/seo-interface/interface.vue +++ b/packages/seo-plugin/src/seo-interface/interface.vue @@ -5,7 +5,7 @@ import { formatTitle } from '@directus/format-title'; import { set } from 'lodash-es'; import { TabsContent, TabsIndicator, TabsList, TabsRoot, TabsTrigger } from 'reka-ui'; -import { computed, defineEmits, defineProps, toRefs } from 'vue'; +import { computed, onMounted, toRefs } from 'vue'; import OgImagePreview from '../shared/components/OgImagePreview.vue'; import SearchPreview from '../shared/components/SearchPreview.vue'; @@ -32,26 +32,34 @@ const emit = defineEmits<(event: 'input', value: SeoValue) => void>(); const { value } = toRefs(props); +function getDefaultSeoValue(): SeoValue { + return { + title: '', + meta_description: '', + focus_keyphrase: '', + og_image: '', + sitemap: { + priority: '0.5', + change_frequency: 'weekly', + }, + no_index: false, + no_follow: false, + additional_fields: {}, + }; +} + const internalValue = computed({ get() { if (!value.value) { - // Return default structure with sitemap defaults when value is null return { - title: '', - meta_description: '', - focus_keyphrase: '', - og_image: '', + ...getDefaultSeoValue(), sitemap: { priority: props.defaultPriority || '0.5', change_frequency: props.defaultChangeFrequency || 'weekly', }, - no_index: false, - no_follow: false, - additional_fields: {}, }; } - // For existing values, ensure sitemap defaults are merged if not present return { ...value.value, sitemap: { @@ -66,6 +74,12 @@ const internalValue = computed({ }, }); +onMounted(() => { + if (!value.value) { + emit('input', internalValue.value); + } +}); + function updateField(field: string, value: unknown) { if (!props.value) { const newValue = set({}, field, value); From 471f171b186dc7c43bc3a20f586033671f5394cf Mon Sep 17 00:00:00 2001 From: Rob Luton Date: Tue, 10 Feb 2026 08:43:22 -0600 Subject: [PATCH 2/2] bump seo plugin version --- packages/seo-plugin/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/seo-plugin/package.json b/packages/seo-plugin/package.json index 4d70f215..e5ed3b5d 100644 --- a/packages/seo-plugin/package.json +++ b/packages/seo-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@directus-labs/seo-plugin", "type": "module", - "version": "1.1.0", + "version": "1.1.1", "description": "SEO plugin for Directus", "license": "MIT", "repository": {