Files
firefly-iii/resources/js/ComponentDemo/react-element-to-jsx-string/formatter/mergeSiblingPlainStringChildrenReducer.js.flow

36 lines
795 B
Plaintext

/* @flow */
import { createStringTreeNode } from './../tree';
import type { TreeNode } from './../tree';
export default (
previousNodes: TreeNode[],
currentNode: TreeNode
): TreeNode[] => {
const nodes = previousNodes.slice(
0,
previousNodes.length > 0 ? previousNodes.length - 1 : 0
);
const previousNode = previousNodes[previousNodes.length - 1];
if (
previousNode &&
(currentNode.type === 'string' || currentNode.type === 'number') &&
(previousNode.type === 'string' || previousNode.type === 'number')
) {
nodes.push(
createStringTreeNode(
String(previousNode.value) + String(currentNode.value)
)
);
} else {
if (previousNode) {
nodes.push(previousNode);
}
nodes.push(currentNode);
}
return nodes;
};