import React from 'react';
import { StyleSheet, View } from 'react-native';
import { TNodeRenderer } from 'react-native-render-html';
import { HeuristicTablePluginConfig, TableRenderNode } from './shared-types';
const styles = StyleSheet.create({
colContainer: { flexDirection: 'column', flexGrow: 1 },
rowContainer: { flexDirection: 'row', flexGrow: 1 }
});
export default function TreeRenderer({
node,
config,
renderIndex,
renderLength
}: {
node: TableRenderNode;
renderIndex: number;
renderLength: number;
config?: HeuristicTablePluginConfig;
}) {
if (node.type === 'cell') {
return (
);
}
if (node.type === 'root' || node.type === 'col-container') {
const children = (node.children as TableRenderNode[]).map((v, i) =>
React.createElement(TreeRenderer, {
node: v,
key: i,
config,
renderIndex: i,
renderLength: node.children.length
})
);
return {children};
}
if (node.type === 'row-container') {
return (
{node.children.map((v, i) =>
React.createElement(TreeRenderer, {
node: v,
key: i,
config,
renderIndex: i,
renderLength: node.children.length
})
)}
);
}
return null;
}