UNPKG

@sms-frontend/components

Version:

SMS Design React UI Library.

21 lines (20 loc) 762 B
/** merge multiple children to a string node */ import React from 'react'; import { isString, isNumber } from './is'; var isSingleNode = function (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] = "" + prevChild + child; } else if (child && child.props && child.props.children) { mergedResult.push(mergedToString(child.props.children)); } }); return mergedResult.join(''); }