index.jsx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // styling
  2. import styles from './styles.module.scss';
  3. // components
  4. import Spring from '@components/Spring';
  5. import AnimatedCount from '@components/AnimatedCount';
  6. // hooks
  7. import {useThemeProvider} from '@contexts/themeContext';
  8. // utils
  9. import PropTypes from 'prop-types';
  10. import classNames from 'classnames';
  11. // constants
  12. import CLUBS from '@constants/clubs';
  13. // assets
  14. import map_light from '@assets/fans/map_red_light.svg';
  15. import map_dark from '@assets/fans/map_red_dark.svg';
  16. const Map = () => {
  17. const {theme} = useThemeProvider();
  18. return (
  19. <div className={styles.media}>
  20. <img className={classNames(styles.media_img, {[styles.visible]: theme === 'light'})}
  21. src={map_light}
  22. alt="Local fans map"/>
  23. <img className={classNames(styles.media_img, {[styles.visible]: theme === 'dark'})}
  24. src={map_dark}
  25. alt="Local fans map"/>
  26. </div>
  27. )
  28. }
  29. const ClubFansMap = ({id}) => {
  30. const club = CLUBS.find(club => club.id === id);
  31. return (
  32. <Spring className="card h-1 card-padded p-relative">
  33. <Map/>
  34. <div className={`${styles.content} d-flex flex-column justify-content-between p-relative h-100`}>
  35. <h3>{club.shortName} fans</h3>
  36. <div className="d-flex flex-column g-4">
  37. <div className="d-flex align-items-center g-8">
  38. <img className="club-logo club-logo--sm" src={club.logo} alt={club.name}/>
  39. <AnimatedCount className="h2" count={102000} isFormatted/>
  40. </div>
  41. <p className="text-12">Active Fans in Europe</p>
  42. </div>
  43. </div>
  44. </Spring>
  45. )
  46. }
  47. ClubFansMap.propTypes = {
  48. id: PropTypes.string.isRequired
  49. }
  50. export default ClubFansMap