@dotcms/react
Version:
Official React Components library to render a dotCMS page.
128 lines (127 loc) • 3.35 kB
TypeScript
/// <reference types="react" />
export interface ContainerData {
[key: string]: {
container: {
path: string;
identifier: string;
maxContentlets: number;
parentPermissionable: Record<string, string>;
};
containerStructures: {
contentTypeVar: string;
}[];
contentlets: {
[key: string]: {
contentType: string;
identifier: string;
title: string;
inode: string;
onNumberOfPages: number;
widgetTitle?: string;
baseType: string;
}[];
};
};
}
export interface DotCMSPageContext {
/**
* `components` is a property of the `PageProviderProps` type.
* It is an object that maps content type variables to their corresponding React components.
*
* It will be use to render the contentlets in the page.
*
* @property {Object} components
* @memberof PageProviderProps
* @type {Object.<string, React.ElementType>}
*/
components: {
[contentTypeVariable: string]: React.ElementType;
};
pageAsset: {
containers: ContainerData;
layout: {
header: boolean;
footer: boolean;
body: {
rows: {
styleClass: string;
columns: {
styleClass: string;
width: number;
leftOffset: number;
containers: {
identifier: string;
uuid: string;
}[];
}[];
}[];
};
};
page: {
title: string;
identifier: string;
};
viewAs: {
language: {
id: string;
};
persona: {
keyTag: string;
};
variantId: string;
};
vanityUrl?: {
pattern: string;
vanityUrlId: string;
url: string;
siteId: string;
languageId: number;
forwardTo: string;
response: number;
order: number;
temporaryRedirect: boolean;
permanentRedirect: boolean;
forward: boolean;
};
};
isInsideEditor: boolean;
}
export interface DotCMSContentlet {
archived: boolean;
binaryContentAsset?: string;
deleted?: boolean;
baseType: string;
binary?: string;
binaryVersion?: string;
file?: string;
contentType: string;
hasLiveVersion?: boolean;
folder: string;
hasTitleImage: boolean;
hostName: string;
host: string;
inode: string;
identifier: string;
languageId: number;
image?: string;
locked: boolean;
language?: string;
mimeType?: string;
modUser: string;
modDate: string;
live: boolean;
sortOrder: number;
owner: string;
title: string;
stInode: string;
titleImage: string;
modUserName: string;
text?: string;
working: boolean;
url: string;
contentTypeIcon?: string;
body?: string;
variant?: string;
__icon__?: string;
[key: string]: any;
}