preact-arco-design
Version:
Arco Design React UI Library.
22 lines (19 loc) • 746 B
JavaScript
/** 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('');
}