diff options
Diffstat (limited to 'packages/integrations/react/vnode-children.js')
-rw-r--r-- | packages/integrations/react/vnode-children.js | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/packages/integrations/react/vnode-children.js b/packages/integrations/react/vnode-children.js index 57a7fb66f..cc8ec3510 100644 --- a/packages/integrations/react/vnode-children.js +++ b/packages/integrations/react/vnode-children.js @@ -8,18 +8,22 @@ export default function convert(children) { let key = 0; function createReactElementFromNode(node) { - const childVnodes = Array.isArray(node.children) ? node.children.map(child => { - if(child.type === ELEMENT_NODE) { - return createReactElementFromNode(child); - } else if(child.type === TEXT_NODE) { - // 0-length text gets omitted in JSX - return child.value.trim() ? child.value : undefined; - } - }).filter(n => !!n) : undefined; - - if(node.type === DOCUMENT_NODE) { + const childVnodes = Array.isArray(node.children) + ? node.children + .map((child) => { + if (child.type === ELEMENT_NODE) { + return createReactElementFromNode(child); + } else if (child.type === TEXT_NODE) { + // 0-length text gets omitted in JSX + return child.value.trim() ? child.value : undefined; + } + }) + .filter((n) => !!n) + : undefined; + + if (node.type === DOCUMENT_NODE) { return createElement(Fragment, {}, childVnodes); - } else if(node.type === ELEMENT_NODE) { + } else if (node.type === ELEMENT_NODE) { const { class: className, ...props } = node.attributes; return createElement(node.name, { ...props, className, key: `${id}-${key++}` }, childVnodes); } |