ClubsByCountry.jsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // components
  2. import Spring from '@components/Spring';
  3. import ClubCard from '@components/ClubCard';
  4. import SelectionList from '@ui/SelectionList';
  5. import ScrollContainer from '@components/ScrollContainer';
  6. // hooks
  7. import {useState} from 'react';
  8. import useMeasure from 'react-use-measure';
  9. // data placeholder
  10. import clubs_by_country from '@db/clubs_by_country';
  11. const ClubsByCountry = () => {
  12. const countries = clubs_by_country.map(item => item.country);
  13. const [country, setCountry] = useState(countries[0]);
  14. const clubs = clubs_by_country.find(item => item.country === country).clubs;
  15. const [ref, {height}] = useMeasure();
  16. return (
  17. <Spring className="card h-4">
  18. <SelectionList options={countries} active={country} setActive={setCountry} innerRef={ref}/>
  19. <ScrollContainer height={height}>
  20. <div className="track d-flex flex-column g-20" style={{padding: 20}}>
  21. {
  22. clubs.map((club, index) => (
  23. <ClubCard key={`${club.name}-${country}`} country={country} club={club} index={index}/>
  24. ))
  25. }
  26. </div>
  27. </ScrollContainer>
  28. </Spring>
  29. )
  30. }
  31. export default ClubsByCountry