react-native-button
Version:
A button for React apps
32 lines (24 loc) • 740 B
JavaScript
import React, { Children } from 'react';
export default function coalesceNonElementChildren(children, coalesceNodes) {
var coalescedChildren = [];
var contiguousNonElements = [];
Children.forEach(children, (child) => {
if (!React.isValidElement(child)) {
contiguousNonElements.push(child);
return;
}
if (contiguousNonElements.length) {
coalescedChildren.push(
coalesceNodes(contiguousNonElements, coalescedChildren.length)
);
contiguousNonElements = [];
}
coalescedChildren.push(child);
});
if (contiguousNonElements.length) {
coalescedChildren.push(
coalesceNodes(contiguousNonElements, coalescedChildren.length)
);
}
return coalescedChildren;
}