import React from 'react'; import format from 'date-fns/format'; import { LineChart, XAxis, YAxis, Line, CartesianGrid } from 'recharts'; import { lighten } from 'polished'; import { Countries, CountryCases, Data } from '../types'; import { getCases } from '../utils/get-cases'; import { processCases } from '../utils/regression'; const margin = { top: 0, right: 0, bottom: 0, left: 0, }; const dateTickFormatter = (date: Date): string => { return format(new Date(date), 'LLL do'); // 'Do MMM'); }; type Props = { countries: Countries; }; const GraphCases: React.FC = ({ countries }) => { const [showCumulative, setCumulative] = React.useState(true); const countryCases = React.useMemo( () => countries.map(({ country, rawData }) => ({ country, dataSource: getCases(rawData), })), [countries], ); const data = React.useMemo(() => processCases(countryCases, showCumulative), [ countryCases, showCumulative, ]); if (!data.length) { return (

No data!

); } return (

setCumulative(true)} checked={showCumulative} /> Cumulative setCumulative(false)} checked={!showCumulative} /> Daily

{countries.map(({ country, color }) => ( ))} {countries.map(({ country, color }) => ( ))}
); }; export default GraphCases;