LanguageList.tsx 816 B

123456789101112131415161718192021222324252627282930313233
  1. import React from "react";
  2. import { t } from "../i18n";
  3. export function LanguageList<T>({
  4. onChange,
  5. languages,
  6. currentLanguage,
  7. floating,
  8. }: {
  9. languages: { lng: string; label: string }[];
  10. onChange: (value: string) => void;
  11. currentLanguage: string;
  12. floating?: boolean;
  13. }) {
  14. return (
  15. <React.Fragment>
  16. <select
  17. className={`dropdown-select dropdown-select__language${
  18. floating ? " dropdown-select--floating" : ""
  19. }`}
  20. onChange={({ target }) => onChange(target.value)}
  21. value={currentLanguage}
  22. aria-label={t("buttons.selectLanguage")}
  23. >
  24. {languages.map(language => (
  25. <option key={language.lng} value={language.lng}>
  26. {language.label}
  27. </option>
  28. ))}
  29. </select>
  30. </React.Fragment>
  31. );
  32. }