// @flow import * as React from 'react'; import {List} from 'react-native-paper'; import {View} from 'react-native-animatable'; import CollapsibleFlatList from '../../components/Collapsible/CollapsibleFlatList'; import packageJson from '../../../package.json'; type ListItemType = { name: string, version: string, }; /** * Generates the dependencies list from the raw json * * @param object The raw json * @return {Array} */ function generateListFromObject(object: { [key: string]: string, }): Array { const list = []; const keys = Object.keys(object); keys.forEach((key: string) => { list.push({name: key, version: object[key]}); }); return list; } const LIST_ITEM_HEIGHT = 64; /** * Class defining a screen showing the list of libraries used by the app, taken from package.json */ export default class AboutDependenciesScreen extends React.Component { data: Array; constructor() { super(); this.data = generateListFromObject(packageJson.dependencies); } keyExtractor = (item: ListItemType): string => item.name; getRenderItem = ({item}: {item: ListItemType}): React.Node => ( ); getItemLayout = ( data: ListItemType, index: number, ): {length: number, offset: number, index: number} => ({ length: LIST_ITEM_HEIGHT, offset: LIST_ITEM_HEIGHT * index, index, }); render(): React.Node { return ( ); } }