Files
ipal-kit/dist/modules/seo/seoPluginConfig.js
T
2026-07-31 23:21:51 +02:00

40 lines
1.5 KiB
JavaScript

import { seoPlugin } from '@payloadcms/plugin-seo';
/**
* Escape hatch from automatic title composition: whatever is typed here becomes
* the entire title — no site name, no separator. Useful on a home page, where
* composing would produce "Intecion Software | Intecion Software".
*/ const titleOverrideField = {
name: 'titleOverride',
type: 'text',
admin: {
description: 'Use this exact text as the browser-tab title — no site name, no separator. Leave empty to compose the title automatically.'
},
localized: true
};
/**
* Configures @payloadcms/plugin-seo from IPAL's SeoOption.
*
* Adds the `meta` field group (title, description, image) to the client's
* chosen collections. tabbedUI is intentionally NOT used — it merges tabs by
* inspecting the first field, which breaks when other plugins/fields (roles,
* slug) already sit in the collection, leaving an empty SEO tab. Instead the
* SEO UI fields are injected into a controlled tab by injectSeoTabs.
*/ export function buildSeoPlugin({ seo, uploadsCollection = 'media' }) {
return seoPlugin({
collections: seo.collections,
fields: ({ defaultFields })=>[
...defaultFields,
titleOverrideField,
...seo.fields ?? []
],
uploadsCollection,
...seo.generateTitle && {
generateTitle: seo.generateTitle
},
...seo.generateDescription && {
generateDescription: seo.generateDescription
}
});
}
//# sourceMappingURL=seoPluginConfig.js.map