import { PieChart, Pie, ResponsiveContainer, Tooltip, Cell } from 'recharts'; import * as React from 'react'; import * as _ from 'lodash'; import { Title } from 'bloomer'; const randomColor = require('randomcolor'); import * as Papa from 'papaparse'; export class Chart extends React.Component { constructor(props: any) { super(props); this.state = { data: [] }; const loaded = (results: any) => { const local = this; local.setState({ headers: results.meta.fields, data: results.data, }); } Papa.parse(this.props.csvFile, { header: true, download: true, skipEmptyLines: true, dynamicTyping: true, complete: loaded }); } public render() { const data = this.state.data; const countMap = _.countBy(data, (o: any) => _.get(o, this.props.chartColumn)) const chartData = _.map(_.keys(countMap), (k: any) => { return { name: k, value: countMap[k], } }) // const RADIAN = Math.PI / 180; // const renderCustomizedLabel = ({ cx, cy, midAngle, innerRadius, outerRadius, percent, index }:any) => { // const radius = innerRadius + (outerRadius - innerRadius) * 0.5; // const x = cx + radius * Math.cos(-midAngle * RADIAN); // const y = cy + radius * Math.sin(-midAngle * RADIAN); // // return ( // // {chartData[index].name} // // ); // }; const colorMap = this.props.colorMap; // const LabeText = (props: any) => { // return ({props.name}); // }; return (
{_.capitalize(this.props.chartColumn)} { chartData.map((_0, _1) => { const color = _.get(colorMap, _0.name, randomColor()); return () }) }
) } }