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.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // @flow
  2. import * as React from 'react';
  3. import {FlatList} from "react-native";
  4. import packageJson from '../../../package';
  5. import {List} from 'react-native-paper';
  6. type listItem = {
  7. name: string,
  8. version: string
  9. };
  10. /**
  11. * Generates the dependencies list from the raw json
  12. *
  13. * @param object The raw json
  14. * @return {Array<listItem>}
  15. */
  16. function generateListFromObject(object: { [string]: string }): Array<listItem> {
  17. let list = [];
  18. let keys = Object.keys(object);
  19. let values = Object.values(object);
  20. for (let i = 0; i < keys.length; i++) {
  21. list.push({name: keys[i], version: values[i]});
  22. }
  23. //$FlowFixMe
  24. return list;
  25. }
  26. type Props = {
  27. navigation: Object,
  28. route: Object
  29. }
  30. /**
  31. * Class defining a screen showing the list of libraries used by the app, taken from package.json
  32. */
  33. export default class AboutDependenciesScreen extends React.Component<Props> {
  34. render() {
  35. const data = generateListFromObject(packageJson.dependencies);
  36. return (
  37. <FlatList
  38. data={data}
  39. keyExtractor={(item) => item.name}
  40. style={{minHeight: 300, width: '100%'}}
  41. renderItem={({item}) =>
  42. <List.Item
  43. title={item.name}
  44. description={item.version.replace('^', '').replace('~', '')}
  45. />}
  46. />
  47. );
  48. }
  49. }