@mirrormedia/lilith-draft-renderer
Version:
## Introduction
123 lines (101 loc) • 2.02 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.atomicBlockRenderer = atomicBlockRenderer;
var _blockRenderers = require("./block-renderers");
const {
EmbeddedCodeBlock,
MediaBlock,
ImageBlock,
InfoBoxBlock,
SlideshowBlock,
SlideshowBlockV2,
DividerBlock,
TableBlock,
ColorBoxBlock,
BGImageBlock,
BGVideoBlock,
RelatedPostBlock,
SideIndexBlock,
VideoBlock,
AudioBlock
} = _blockRenderers.blockRenderers;
const AtomicBlock = props => {
const entity = props.contentState.getEntity(props.block.getEntityAt(0));
const entityType = entity.getType();
switch (entityType) {
case 'audioLink':
case 'imageLink':
case 'videoLink':
{
return MediaBlock(entity);
}
case 'image':
{
return ImageBlock(props);
}
case 'slideshow':
{
return SlideshowBlock(entity);
}
case 'slideshow-v2':
{
return SlideshowBlockV2(entity);
}
case 'EMBEDDEDCODE':
{
return EmbeddedCodeBlock(entity);
}
case 'INFOBOX':
{
return InfoBoxBlock(props);
}
case 'DIVIDER':
{
return DividerBlock();
}
case 'TABLE':
{
return TableBlock(props);
}
case 'COLORBOX':
{
return ColorBoxBlock(props);
}
case 'BACKGROUNDIMAGE':
{
return BGImageBlock(props);
}
case 'BACKGROUNDVIDEO':
{
return BGVideoBlock(props);
}
case 'RELATEDPOST':
{
return RelatedPostBlock(entity);
}
case 'SIDEINDEX':
{
return SideIndexBlock(props);
}
case 'VIDEO':
{
return VideoBlock(entity);
}
case 'AUDIO':
{
return AudioBlock(entity);
}
}
return null;
};
function atomicBlockRenderer(block) {
if (block.getType() === 'atomic') {
return {
component: AtomicBlock,
editable: false
};
}
return null;
}