import { AreaChart, Area, Tooltip, CartesianGrid, ResponsiveContainer } from 'recharts'; import colors from 'styles/colors'; import { Card } from 'components/Form/Card'; import Row from 'components/Form/Row'; const cardStyles = ` span.val { &.up { color: ${colors.success}; } &.down { color: ${colors.danger}; } } .rank-average { text-align: center; font-size: 1.8rem; font-weight: bold; } .chart-container { margin-top: 1rem; } `; const makeRankStats = (data: {date: string, rank: number }[]) => { const average = Math.round(data.reduce((acc, cur) => acc + cur.rank, 0) / data.length); const today = data[0].rank; const yesterday = data[1].rank; const percentageChange = ((today - yesterday) / yesterday) * 100; return { average, percentageChange }; }; const makeChartData = (data: {date: string, rank: number }[]) => { return data.map((d) => { return { date: d.date, uv: d.rank }; }); }; function Chart(chartData: { date: string; uv: number; }[], data: any) { return ['Date : ', data[value].date]} /> ; } const RankCard = (props: { data: any, title: string, actionButtons: any }): JSX.Element => { const data = props.data.ranks || []; const { average, percentageChange } = makeRankStats(data); const chartData = makeChartData(data); return ( {data[0].rank.toLocaleString()} 0 ? '+':''} ${percentageChange.toFixed(2)}%`} /> {Chart(chartData, data)} ); } export default RankCard;