DropdownLang.jsx 1.4KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import React from 'react'
  2. import PropTypes from 'prop-types'
  3. import flagFr from '../../../img/flagFr.png' // for default lang
  4. const DropdownLang = props => {
  5. const activeLang = props.langList.find(l => l.active) || {id: 'fr', name: 'Français', src: flagFr, active: true}
  6. return (
  7. <li className='header__menu__rightside__itemlanguage'>
  8. <div className='header__menu__rightside__itemlanguage__languagedropdown dropdown'>
  9. <button
  10. type='button'
  11. className='languagedropdown__btnlanguage btnnavbar btn btn-secondary dropdown-toggle'
  12. id='headerDropdownMenuButton'
  13. data-toggle='dropdown'
  14. aria-haspopup='true'
  15. aria-expanded='false'
  16. >
  17. <img className='languagedropdown__btnlanguage__imgselected' src={activeLang.src} alt={activeLang.name} />
  18. </button>
  19. <div className='languagedropdown__subdropdown dropdown-menu' aria-labelledby='headerDropdownMenuButton'>
  20. { props.langList.map((l, i) => l.active === false &&
  21. <div className='subdropdown__link dropdown-item' onClick={() => props.onChangeLang(l.id)} key={i}>
  22. <img className='subdropdown__flag' src={l.src} alt={l.name} />
  23. </div>
  24. )}
  25. </div>
  26. </div>
  27. </li>
  28. )
  29. }
  30. export default DropdownLang
  31. DropdownLang.propTypes = {
  32. langList: PropTypes.array.isRequired,
  33. onChangeLang: PropTypes.func.isRequired
  34. }