From 4d44b784a22cab77f58c77568d62f2c7f1529697 Mon Sep 17 00:00:00 2001 From: Robbert Stevens Date: Tue, 19 May 2026 15:12:47 +0200 Subject: [PATCH 1/4] feat: added omnisearch availablity to document Internationalization default --- .../document-internationalization/README.md | 4 ++++ .../src/constants.ts | 1 + .../document-internationalization/src/plugin.tsx | 3 ++- .../src/schema/translation/metadata.test.ts | 16 ++++++++++++++++ .../src/schema/translation/metadata.ts | 3 ++- .../document-internationalization/src/types.ts | 6 ++++++ 6 files changed, 31 insertions(+), 2 deletions(-) diff --git a/plugins/@sanity/document-internationalization/README.md b/plugins/@sanity/document-internationalization/README.md index 4f9e88b40..c4e4e3b9c 100644 --- a/plugins/@sanity/document-internationalization/README.md +++ b/plugins/@sanity/document-internationalization/README.md @@ -250,6 +250,10 @@ export const defineConfig({ // - An array of schema type names: `hideLanguageFilter: ['lesson']` // - A function for dynamic control: `hideLanguageFilter: (ctx) => ctx.schemaType === 'lesson'` hideLanguageFilter: true, // defaults to false + + // Optional + // Controls whether translation.metadata documents are visible in Omnisearch + metadataOmnisearchVisibility: true, // defaults to true }) ] }) diff --git a/plugins/@sanity/document-internationalization/src/constants.ts b/plugins/@sanity/document-internationalization/src/constants.ts index b1aeb6a94..190e74287 100644 --- a/plugins/@sanity/document-internationalization/src/constants.ts +++ b/plugins/@sanity/document-internationalization/src/constants.ts @@ -14,5 +14,6 @@ export const DEFAULT_CONFIG: PluginConfigContext = { allowCreateMetaDoc: false, callback: null, hideLanguageFilter: false, + metadataOmnisearchVisibility: true, addTemplates: true, } diff --git a/plugins/@sanity/document-internationalization/src/plugin.tsx b/plugins/@sanity/document-internationalization/src/plugin.tsx index 5ca2cd281..267bd421a 100644 --- a/plugins/@sanity/document-internationalization/src/plugin.tsx +++ b/plugins/@sanity/document-internationalization/src/plugin.tsx @@ -22,6 +22,7 @@ export const documentInternationalization = definePlugin((config) bulkPublish, metadataFields, hideLanguageFilter, + metadataOmnisearchVisibility, metadataInternationalization, addTemplates, } = pluginConfig @@ -125,7 +126,7 @@ export const documentInternationalization = definePlugin((config) // - The `Translations metadata` document type to the schema schema: { // Create the metadata document type - types: [metadata(schemaTypes, metadataFields)], + types: [metadata(schemaTypes, metadataFields, metadataOmnisearchVisibility)], // For every schema type this plugin is enabled on // Create an initial value template to set the language diff --git a/plugins/@sanity/document-internationalization/src/schema/translation/metadata.test.ts b/plugins/@sanity/document-internationalization/src/schema/translation/metadata.test.ts index 111995652..f85178de4 100644 --- a/plugins/@sanity/document-internationalization/src/schema/translation/metadata.test.ts +++ b/plugins/@sanity/document-internationalization/src/schema/translation/metadata.test.ts @@ -6,6 +6,10 @@ import {describe, expect, test} from 'vitest' import {METADATA_SCHEMA_NAME, TRANSLATIONS_ARRAY_NAME} from '../../constants' import createMetadataSchema from './metadata' +type MetadataSchema = ReturnType & { + __experimental_omnisearch_visibility?: boolean +} + describe('metadata schema', () => { const schemaTypes = ['article', 'page'] @@ -95,6 +99,18 @@ describe('metadata schema', () => { expect(schema.liveEdit).toBe(true) }) + test('sets Omnisearch visibility to false by default', () => { + const schema = createMetadataSchema(schemaTypes, []) as MetadataSchema + + expect(schema.__experimental_omnisearch_visibility).toBe(false) + }) + + test('configures Omnisearch visibility when provided', () => { + const schema = createMetadataSchema(schemaTypes, [], true) as MetadataSchema + + expect(schema.__experimental_omnisearch_visibility).toBe(true) + }) + test('uses TranslateIcon', () => { const schema = createMetadataSchema(schemaTypes, []) diff --git a/plugins/@sanity/document-internationalization/src/schema/translation/metadata.ts b/plugins/@sanity/document-internationalization/src/schema/translation/metadata.ts index 533a767df..532e6aacd 100644 --- a/plugins/@sanity/document-internationalization/src/schema/translation/metadata.ts +++ b/plugins/@sanity/document-internationalization/src/schema/translation/metadata.ts @@ -12,13 +12,14 @@ import type {TranslationReference} from '../../types' * metadata fields provided by the plugin consumer. The document uses `liveEdit` * so changes are published immediately without drafts. */ -export default (schemaTypes: string[], metadataFields: FieldDefinition[]): DocumentDefinition => +export default (schemaTypes: string[], metadataFields: FieldDefinition[], omnisearchVisibility = false): DocumentDefinition => defineType({ type: 'document', name: METADATA_SCHEMA_NAME, title: 'Translation metadata', icon: TranslateIcon, liveEdit: true, + __experimental_omnisearch_visibility: omnisearchVisibility, fields: [ defineField({ name: TRANSLATIONS_ARRAY_NAME, diff --git a/plugins/@sanity/document-internationalization/src/types.ts b/plugins/@sanity/document-internationalization/src/types.ts index 57969fad5..13e69d506 100644 --- a/plugins/@sanity/document-internationalization/src/types.ts +++ b/plugins/@sanity/document-internationalization/src/types.ts @@ -39,6 +39,12 @@ export type PluginConfig = { allowCreateMetaDoc?: boolean callback?: ((args: PluginCallbackArgs) => Promise) | null hideLanguageFilter?: boolean | string[] | ((ctx: DocumentLanguageFilterContext) => boolean) + /** + * Controls whether the translation metadata document type appears in Omnisearch. + * + * Set to false to hide `translation.metadata` documents from Omnisearch. + */ + metadataOmnisearchVisibility?: boolean /** * Allows configuring the behavior of the internationalized array for the metadata document. */ From d4c448f94471849d7bc2b30955a92e7e13fdd10f Mon Sep 17 00:00:00 2001 From: Robbert Stevens Date: Tue, 19 May 2026 15:23:05 +0200 Subject: [PATCH 2/4] feat: set correct default --- .../src/schema/translation/metadata.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/@sanity/document-internationalization/src/schema/translation/metadata.ts b/plugins/@sanity/document-internationalization/src/schema/translation/metadata.ts index 532e6aacd..9d0a2b538 100644 --- a/plugins/@sanity/document-internationalization/src/schema/translation/metadata.ts +++ b/plugins/@sanity/document-internationalization/src/schema/translation/metadata.ts @@ -12,7 +12,7 @@ import type {TranslationReference} from '../../types' * metadata fields provided by the plugin consumer. The document uses `liveEdit` * so changes are published immediately without drafts. */ -export default (schemaTypes: string[], metadataFields: FieldDefinition[], omnisearchVisibility = false): DocumentDefinition => +export default (schemaTypes: string[], metadataFields: FieldDefinition[], omnisearchVisibility = true): DocumentDefinition => defineType({ type: 'document', name: METADATA_SCHEMA_NAME, From 32a9de7017abc19180bea14d73419852947de836 Mon Sep 17 00:00:00 2001 From: Robbert Stevens Date: Tue, 19 May 2026 15:26:20 +0200 Subject: [PATCH 3/4] feat: added changeset --- .changeset/document-internationalization-omnisearch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/document-internationalization-omnisearch.md diff --git a/.changeset/document-internationalization-omnisearch.md b/.changeset/document-internationalization-omnisearch.md new file mode 100644 index 000000000..d1185df12 --- /dev/null +++ b/.changeset/document-internationalization-omnisearch.md @@ -0,0 +1,5 @@ +--- +"@sanity/document-internationalization": minor +--- + +Add a `metadataOmnisearchVisibility` option to control whether translation metadata documents appear in Omnisearch. From db3659c2c8e4c90128aff1a1f4e212a98a49bd32 Mon Sep 17 00:00:00 2001 From: Robbert Stevens Date: Thu, 21 May 2026 14:26:06 +0200 Subject: [PATCH 4/4] feat: Fixed test default value * Default value was changed to true * Added case for value false --- .../src/schema/translation/metadata.test.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/@sanity/document-internationalization/src/schema/translation/metadata.test.ts b/plugins/@sanity/document-internationalization/src/schema/translation/metadata.test.ts index f85178de4..350608aa6 100644 --- a/plugins/@sanity/document-internationalization/src/schema/translation/metadata.test.ts +++ b/plugins/@sanity/document-internationalization/src/schema/translation/metadata.test.ts @@ -99,10 +99,10 @@ describe('metadata schema', () => { expect(schema.liveEdit).toBe(true) }) - test('sets Omnisearch visibility to false by default', () => { + test('sets Omnisearch visibility to true by default', () => { const schema = createMetadataSchema(schemaTypes, []) as MetadataSchema - expect(schema.__experimental_omnisearch_visibility).toBe(false) + expect(schema.__experimental_omnisearch_visibility).toBe(true) }) test('configures Omnisearch visibility when provided', () => { @@ -111,6 +111,12 @@ describe('metadata schema', () => { expect(schema.__experimental_omnisearch_visibility).toBe(true) }) + test('configures Omnisearch visibility when provided false', () => { + const schema = createMetadataSchema(schemaTypes, [], false) as MetadataSchema + + expect(schema.__experimental_omnisearch_visibility).toBe(false) + }) + test('uses TranslateIcon', () => { const schema = createMetadataSchema(schemaTypes, [])