PassesPolarChart.jsx 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // components
  2. import Spring from '@components/Spring';
  3. import LegendItem from '@ui/LegendItem';
  4. import {Radar, RadarChart, PolarGrid, PolarAngleAxis, ResponsiveContainer, Tooltip} from 'recharts';
  5. import ChartTooltip from '@ui/ChartTooltip';
  6. // hooks
  7. import {useWindowSize} from 'react-use';
  8. // utils
  9. import {renderPolarAngleAxis} from '@utils/helpers';
  10. const PassesPolarChart = () => {
  11. const {width} = useWindowSize()
  12. const data = [
  13. {value: 'shots', a: 10, b: 15},
  14. {value: 'crosses', a: 20, b: 7},
  15. {value: 'outs', a: 12, b: 22},
  16. {value: 'saves', a: 25, b: 6},
  17. {value: 'corners', a: 8, b: 18},
  18. {value: 'passes', a: 14, b: 28}
  19. ]
  20. return (
  21. <Spring className="card d-flex flex-column card-padded g-30">
  22. <h3>Passes stats</h3>
  23. <div className={width >= 768 ? 'flex-1' : ''} style={{height: 240}}>
  24. <ResponsiveContainer width="100%" height="100%">
  25. <RadarChart cx="50%" cy="50%" outerRadius="80%" data={data}>
  26. <PolarGrid stroke="var(--border)"/>
  27. <PolarAngleAxis dataKey="value"
  28. tick={props => renderPolarAngleAxis(props)}
  29. cx="50%"
  30. cy="50%"
  31. style={{
  32. textTransform: 'uppercase',
  33. fontFamily: 'var(--heading-font)',
  34. fontSize: '8px',
  35. fontWeight: '600',
  36. }}
  37. />
  38. <Radar dataKey="a"
  39. activeDot={{stroke: 'var(--accent)'}}
  40. stroke="var(--accent)"
  41. strokeWidth={4}
  42. fill="var(--accent)"
  43. fillOpacity={0.1}/>
  44. <Radar dataKey="b"
  45. activeDot={{stroke: 'var(--red)'}}
  46. stroke="var(--red)"
  47. strokeWidth={4}
  48. fill="var(--red)"
  49. fillOpacity={0.1}/>
  50. <Tooltip cursor={false} content={<ChartTooltip multi/>}/>
  51. </RadarChart>
  52. </ResponsiveContainer>
  53. </div>
  54. <div className="d-flex justify-content-center g-20">
  55. <LegendItem color="accent" text="Juventus"/>
  56. <LegendItem color="red" text="Bayern"/>
  57. </div>
  58. </Spring>
  59. )
  60. }
  61. export default PassesPolarChart