UNPKG

@dotcms/react

Version:

Official React Components library to render a dotCMS page.

38 lines (37 loc) 1.81 kB
/// <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 {};