import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import ExpandLess from '@material-ui/icons/KeyboardArrowRight';
import ExpandMore from '@material-ui/icons/ExpandMore';
import Add from '@material-ui/icons/AddCircle';
import Remove from '@material-ui/icons/RemoveCircleOutline';
import { Table, TableBody, TableCell, TableHead, TableRow } from '@material-ui/core';
const styles = theme => ({
  root: {
    width: '100%',
    marginTop: theme.spacing(3),
    overflowX: 'auto',
  },
  table: {
    minWidth: 700,
  },
  hideRow: {
    display: 'none'
  },
  anchor: {
    cursor: 'pointer'
  },
  icon: {
    top: 5,
    position: 'relative',
    left: -5
  }
});
let RenderRow = props => {
  const {
    classes,
    toggleTree,
    treeOpen,
    item,
    parent,
    arrowMore,
    icon,
    branch
  } = props;
  const keyID = item.id;
  const dataBody = Object.keys(item);
  const dataBodyVal = Object.values(item);
  const renderIconMore = (iconName) => {
    if (iconName === 'arrow') {
      return ;
    }
    return ;
  };
  const renderIconLess = (iconName) => {
    if (iconName === 'arrow') {
      return ;
    }
    return ;
  };
  const renderCell = (dataArray, parentCell) => dataArray.map((itemCell, index) => {
    if (index < 1) {
      if (parentCell) {
        return (
          
            {arrowMore.indexOf(keyID) > -1 ? renderIconMore(icon) : renderIconLess(icon)}
            {keyID}
          
        );
      }
      return (
        {keyID}
      );
    }
    if (itemCell !== 'child') {
      return (
        {dataBodyVal[index]}
      );
    }
    return false;
  });
  const row = parent ? (
     -1 ? classes.hideRow : classes.anchor}
      onClick={() => toggleTree(keyID, item.child, branch)}
    >
      {renderCell(dataBody, true)}
    
  ) : (
     -1 ? classes.hideRow : ''}
    >
      {renderCell(dataBody, false)}
    
  );
  return [row];
};
RenderRow.propTypes = {
  classes: PropTypes.object.isRequired,
  item: PropTypes.object.isRequired,
  parent: PropTypes.bool.isRequired,
  toggleTree: PropTypes.func.isRequired,
  treeOpen: PropTypes.object.isRequired,
  arrowMore: PropTypes.object.isRequired,
  branch: PropTypes.string.isRequired,
  icon: PropTypes.string.isRequired
};
RenderRow = withStyles(styles)(RenderRow);
class TreeTable extends React.Component {
  render() {
    const {
      classes,
      dataTable,
      icon,
      treeOpen,
      arrowMore,
      toggleTree,
      branch
    } = this.props;
    const parentRow = true;
    const getData = dataArray => dataArray.map((item, index) => {
      if (item.child) {
        return [
          ,
          getData(item.child)
        ];
      }
      return (
        
      );
    });
    const getHead = dataArray => dataArray.map((item, index) => {item.label}
    );
    return (
      
        
          
            { getHead(dataTable.head) }
          
        
        
          { getData(dataTable.body) }
        
      
    );
  }
}
TreeTable.propTypes = {
  classes: PropTypes.object.isRequired,
  dataTable: PropTypes.object.isRequired,
  treeOpen: PropTypes.object.isRequired,
  toggleTree: PropTypes.func.isRequired,
  arrowMore: PropTypes.object.isRequired,
  branch: PropTypes.string.isRequired,
  icon: PropTypes.string.isRequired
};
export default withStyles(styles)(TreeTable);