Application Android et IOS pour l'amicale des élèves https://play.google.com/store/apps/details?id=fr.amicaleinsat.application
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.

AboutDependenciesScreen.js 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // @flow
  2. import * as React from 'react';
  3. import {Body, Container, Content, ListItem, Text} from 'native-base';
  4. import CustomHeader from "../../components/CustomHeader";
  5. import {FlatList} from "react-native";
  6. import i18n from "i18n-js";
  7. function generateListFromObject(object) {
  8. let list = [];
  9. let keys = Object.keys(object);
  10. let values = Object.values(object);
  11. for (let i = 0; i < keys.length; i++) {
  12. list.push({name: keys[i], version: values[i]});
  13. }
  14. return list;
  15. }
  16. type Props = {
  17. navigation: Object
  18. }
  19. /**
  20. * Class defining a screen showing the list of libraries used by the app, taken from package.json
  21. */
  22. export default class AboutDependenciesScreen extends React.Component<Props> {
  23. render() {
  24. const nav = this.props.navigation;
  25. const data = generateListFromObject(nav.getParam('data', {}));
  26. return (
  27. <Container>
  28. <CustomHeader backButton={true} navigation={nav} title={i18n.t('aboutScreen.libs')}/>
  29. <Content>
  30. <FlatList
  31. data={data}
  32. keyExtractor={(item) => item.name}
  33. style={{minHeight: 300, width: '100%'}}
  34. renderItem={({item}) =>
  35. <ListItem>
  36. <Body>
  37. <Text>
  38. {item.name}
  39. </Text>
  40. <Text note>
  41. {item.version.replace('^', '')}
  42. </Text>
  43. </Body>
  44. </ListItem>}
  45. />
  46. </Content>
  47. </Container>
  48. );
  49. }
  50. }