You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LanguageList.tsx 1004B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import React from 'react';
  2. import { ScrollView } from 'react-native';
  3. import LanguageListItem from './LanguageListItem';
  4. import styles from './styles';
  5. interface ILanguageListProps {
  6. items: Array<ILanguageItem>;
  7. onLanguageSelected: (lang: string) => void;
  8. selectedLanguage: string;
  9. }
  10. interface ILanguageItem {
  11. id: string;
  12. lang: string;
  13. selected: boolean;
  14. }
  15. /**
  16. * Component that renders the security options dialog.
  17. *
  18. * @returns {React$Element<any>}
  19. */
  20. const LanguageList = ({ items, onLanguageSelected }: ILanguageListProps) => {
  21. const listItems = items?.map(item => (
  22. <LanguageListItem
  23. key = { item.id }
  24. lang = { item.lang }
  25. onLanguageSelected = { onLanguageSelected }
  26. selected = { item.selected } />
  27. ));
  28. return (
  29. <ScrollView
  30. bounces = { false }
  31. style = { styles.itemsContainer }>
  32. { listItems }
  33. </ScrollView>
  34. );
  35. };
  36. export default LanguageList;