UNPKG

preact-arco-design

Version:

Arco Design React UI Library.

22 lines (19 loc) 746 B
/** merge multiple children to a string node */ import React from "preact/compat"; import { isString, isNumber } from "./is"; var isSingleNode = function isSingleNode(child) { return isString(child) || isNumber(child); }; export default function mergedToString(children) { var mergedResult = ['']; React.Children.forEach(children, function (child) { var prevIndex = mergedResult.length - 1; var prevChild = mergedResult[prevIndex]; if (isSingleNode(child) && isSingleNode(prevChild)) { mergedResult[prevIndex] = "".concat(prevChild).concat(child); } else if (child && child.props && child.props.children) { mergedResult.push(mergedToString(child.props.children)); } }); return mergedResult.join(''); }