Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

LanguageList.tsx 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import React from 'react';
  2. import { makeStyles } from 'tss-react/mui';
  3. import LanguageListItem from './LanguageListItem';
  4. interface ILanguageListProps {
  5. items: Array<ILanguageItem>;
  6. onLanguageSelected: (lang: string) => void;
  7. selectedLanguage: string;
  8. }
  9. const useStyles = makeStyles()(() => {
  10. return {
  11. itemsContainer: {
  12. display: 'flex',
  13. flexFlow: 'column'
  14. }
  15. };
  16. });
  17. interface ILanguageItem {
  18. id: string;
  19. lang: string;
  20. selected: boolean;
  21. }
  22. /**
  23. * Component that renders the security options dialog.
  24. *
  25. * @returns {React$Element<any>}
  26. */
  27. const LanguageList = ({
  28. items,
  29. onLanguageSelected
  30. }: ILanguageListProps) => {
  31. const { classes: styles } = useStyles();
  32. const listItems = items.map(item => (
  33. <LanguageListItem
  34. key = { item.id }
  35. lang = { item.lang }
  36. onLanguageSelected = { onLanguageSelected }
  37. selected = { item.selected } />
  38. ));
  39. return (
  40. <div className = { styles.itemsContainer }>{listItems}</div>
  41. );
  42. };
  43. export default LanguageList;