@dotcms/react
Version:
Official React Components library to render a dotCMS page.
38 lines (37 loc) • 1.81 kB
TypeScript
/// <reference types="react" />
import { DotCMSContentlet } from '../../models';
import { Block } from '../../models/blocks.interface';
import { CustomRenderer } from '../../models/content-node.interface';
interface BaseProps {
blocks: Block;
customRenderers?: CustomRenderer;
className?: string;
style?: React.CSSProperties;
}
interface EditableProps extends BaseProps {
editable: true;
contentlet: DotCMSContentlet;
fieldName: string;
}
interface NonEditableProps extends BaseProps {
editable?: false;
contentlet?: never;
fieldName?: never;
}
type BlockEditorRendererProps = EditableProps | NonEditableProps;
/**
* BlockEditorRenderer component for rendering block editor field.
*
* @component
* @param {Object} props - The component props.
* @param {Block} props.blocks - The blocks of content to render.
* @param {CustomRenderer} [props.customRenderers] - Optional custom renderers for specific block types.
* @param {string} [props.className] - Optional CSS class name for the container div.
* @param {React.CSSProperties} [props.style] - Optional inline styles for the container div.
* @param {boolean} props.editable - Flag to enable inline editing. When true, `contentlet` and `fieldName` are required. Note: Enterprise only feature.
* @param {DotCMSContentlet} [props.contentlet] - Contentlet object for inline editing. Required when `editable` is true.
* @param {string} [props.fieldName] - Field name for inline editing. Required when `editable` is true.
* @returns {JSX.Element} A div containing the rendered blocks of content.
*/
export declare const BlockEditorRenderer: ({ style, blocks, editable, fieldName, className, contentlet, customRenderers }: BlockEditorRendererProps) => import("react/jsx-runtime").JSX.Element | null;
export {};