diff --git a/packages/bbob-react/src/render.js b/packages/bbob-react/src/render.js index cc4478f..abe78d3 100644 --- a/packages/bbob-react/src/render.js +++ b/packages/bbob-react/src/render.js @@ -1,3 +1,4 @@ +/* eslint-disable no-use-before-define */ import React from 'react'; import core from '@bbob/core'; import * as html from '@bbob/html'; @@ -10,12 +11,13 @@ const toAST = (source, plugins, options) => core(plugins) render: (input) => html.render(input, { stripTags: true }), }).tree; +const isContentEmpty = (content) => (!content || content.length === 0); + function tagToReactElement(node, index) { return React.createElement( node.tag, { ...node.attrs, key: index }, - // eslint-disable-next-line no-use-before-define - node.content ? renderToReactNodes(node.content) : null, + isContentEmpty(node.content) ? null : renderToReactNodes(node.content), ); } diff --git a/packages/bbob-react/test/index.test.js b/packages/bbob-react/test/index.test.js index eacca41..81084f4 100644 --- a/packages/bbob-react/test/index.test.js +++ b/packages/bbob-react/test/index.test.js @@ -43,6 +43,12 @@ describe('@bbob/react', () => { expect(html).toBe('https://en.wikipedia.org') }); + test('[b]Testing[/b][hr]', () => { + const html = renderBBCode('[b]Testing[/b][hr]'); + + expect(html).toBe('Testing
') + }); + describe('options.onlyAllowTags', () => { test('render "[Super Feature] and [i]super[/i]" when only [i] allowed', () => { const html = renderBBCode('[Super Feature] and [i]super[/i]', { onlyAllowTags: ['i'] });