diff --git a/src/oik-blocklist/blocklist.js b/src/oik-blocklist/blocklist.js index 22be132..d68064f 100644 --- a/src/oik-blocklist/blocklist.js +++ b/src/oik-blocklist/blocklist.js @@ -154,7 +154,8 @@ function BlockListItem( block, showBlockLink ) { blockSupportsInserter = BlockSupportsInserter( block) ; var blockDescription = null; //console.log( block.description ); - blockDescription = ( typeof block.description === 'string' ) ? block.description : 'TBC'; + blockDescription = BlockDescription( block.description ); + // ( typeof block.description === 'string' ) ? block.description : {block.description}; //blockDescription = {block.description}; //console.log( block.block_name + '|' + block.name ); @@ -205,8 +206,9 @@ function BlockListItem( block, showBlockLink ) { */ function BlockCreateBlockLink( block, component ) { var url = ajaxurl; - var blockDescription = ( typeof block.description === 'string') ? block.description : 'TBC'; + //var blockDescription = ( typeof block.description === 'string') ? block.description : 'TBC'; //var blockDescription = renderToString( {block.description} ); + var blockDescription = BlockDescription( block.description ); var keywords = block.keywords ? block.keywords.join() : null; url = addQueryArgs( url, { action: 'oiksc_create_or_update_block' }); url = addQueryArgs( url, { title: block.title }); @@ -216,6 +218,8 @@ function BlockCreateBlockLink( block, component ) { url = addQueryArgs( url, { keywords: keywords}); url = addQueryArgs( url, { category: block.category}); url = addQueryArgs( url, { variation: block.block_name}); + // This doesn't seem to work anymore! + console.log( block.icon ); var blockIcon = renderToString( ); url = addQueryArgs( url, { icon: blockIcon }); //console.log( url ); @@ -243,4 +247,34 @@ function BlockNoLink( block, component ) { ); } +/** + * Returns a string for the block description. + * + * The renderToString() function doesn't work during save(). + * This function is a hacky workaround for those blocks that + * don't simply provide a string. + * We assume we can use the content of the first block + * since it's expected to be a paragraph. + * + * @param description + * @returns {string} + * @constructor + */ + +function BlockDescription( description ) { + + if ( typeof description === 'string' ) { + return(description); + } else { + //console.log( description); + var descFromFirstPara = 'TBC'; + var children = description.props.children; + if ( children[0].type === 'p' ) { + descFromFirstPara = children[0].props.children; + } + return( descFromFirstPara ); + } + +} + export { BlockListStyled, BlockListItem }; \ No newline at end of file