BassPossessionAreaChartMini.jsx 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. // components
  2. import Spring from '@components/Spring';
  3. import {Area, AreaChart, ResponsiveContainer, Tooltip} from 'recharts';
  4. import ChartTooltip from '@ui/ChartTooltip';
  5. import SubmenuButton from '@ui/SubmenuButton';
  6. // hooks
  7. import {useThemeProvider} from '@contexts/themeContext';
  8. const BassPossessionAreaChartMini = () => {
  9. const {theme} = useThemeProvider();
  10. const data = [
  11. { a: 11, b: 45 },
  12. { a: 14, b: 25 },
  13. { a: 22, b: 15 },
  14. { a: 17, b: 30 },
  15. { a: 40, b: 16 },
  16. { a: 23, b: 35 },
  17. { a: 29, b: 18 },
  18. { a: 12, b: 48 },
  19. { a: 26, b: 42 },
  20. { a: 19, b: 31 }
  21. ];
  22. const areaProps = {
  23. type: 'monotone',
  24. strokeWidth: 3,
  25. activeDot: {stroke: 'var(--widget)'},
  26. fillOpacity: theme === 'light' ? 1 : 0
  27. }
  28. const footerStyles = {
  29. position: 'absolute',
  30. width: '100%',
  31. bottom: 0,
  32. left: 0,
  33. zIndex: 1,
  34. }
  35. return (
  36. <Spring className="card h-1 card--side-shadow d-flex flex-column">
  37. <div className="card_header">
  38. <h3>Ball possession</h3>
  39. <span className="text-12">Tottenham vs. Wolves</span>
  40. </div>
  41. <ResponsiveContainer className="flex-1" width="100%" height="100%">
  42. <AreaChart data={data} margin={{top: 4, right: 0, left: 0, bottom: 0}}>
  43. <Tooltip cursor={false} content={<ChartTooltip multi/>}/>
  44. <defs>
  45. <linearGradient id="a" x1="375" y1="125" x2="375" y2="0" gradientUnits="userSpaceOnUse">
  46. <stop stopColor="white" stopOpacity="0.1"/>
  47. <stop offset="1" stopColor="#2662F0"/>
  48. </linearGradient>
  49. <linearGradient id="b" x1="373.971" y1="137.242" x2="373.971" y2="0" gradientUnits="userSpaceOnUse">
  50. <stop stopColor="white" stopOpacity="0.1"/>
  51. <stop offset="1" stopColor="#FDE100"/>
  52. </linearGradient>
  53. </defs>
  54. <Area dataKey="a"
  55. stroke="var(--blue)"
  56. fill="url(#a)"
  57. {...areaProps}/>
  58. <Area dataKey="b"
  59. stroke="var(--accent)"
  60. fill="url(#b)"
  61. {...areaProps}/>
  62. </AreaChart>
  63. </ResponsiveContainer>
  64. <div className="card_footer d-flex justify-content-between" style={footerStyles}>
  65. <div className="d-flex g-16">
  66. <span className="tag h6 dark" style={{backgroundColor: 'var(--blue)'}}>
  67. Tottenham
  68. </span>
  69. <span className="tag h6 light" style={{backgroundColor: 'var(--accent)'}}>
  70. Wolves
  71. </span>
  72. </div>
  73. <SubmenuButton/>
  74. </div>
  75. </Spring>
  76. )
  77. }
  78. export default BassPossessionAreaChartMini