28 lines
1.2 KiB
TypeScript
28 lines
1.2 KiB
TypeScript
import type { Field, GlobalConfig } from 'payload';
|
|
type BuildSiteSettingsArgs = {
|
|
/** Extra fields injected by the client project */
|
|
additionalFields?: Field[];
|
|
/**
|
|
* Fields for the "System Pages" tab — page assignments by role (homepage,
|
|
* privacy policy, collection archives). Assembled by the caller, which is the
|
|
* only place that knows which modules are enabled. The tab is omitted when
|
|
* this is empty.
|
|
*/
|
|
systemPageFields?: Field[];
|
|
};
|
|
/**
|
|
* Builds the SiteSettings global.
|
|
*
|
|
* Composes tabs out of field groups; it deliberately doesn't know where those
|
|
* groups come from. Earlier it imported the pages and content modules directly,
|
|
* which meant a global — a presentation-layer concern — had an opinion about
|
|
* blogs. Now the plugin's composition root passes fields in, and adding a new
|
|
* kind of page assignment needs no change here.
|
|
*
|
|
* Uses unnamed tabs — data stays flat (siteSettings.siteName, not
|
|
* siteSettings.general.siteName). Client-provided fields land in their own
|
|
* "Custom" tab so core data paths never shift.
|
|
*/
|
|
export declare function buildSiteSettings({ additionalFields, systemPageFields, }?: BuildSiteSettingsArgs): GlobalConfig;
|
|
export {};
|