/** * @prettier * @flow */ import { DetailContextConsumer } from '../../pages/version/index'; import { formatDateDistance } from '../../utils/package'; import { Heading, Spacer, ListItemText } from './styles'; import List from '@material-ui/core/List/index'; import ListItem from '@material-ui/core/ListItem/index'; import React from 'react'; import { DIST_TAGS } from '../../../lib/constants'; class Versions extends React.PureComponent { render() { return ( // $FlowFixMe {({ packageMeta }) => { return this.renderContent(packageMeta); }} ); } renderPackageList = (packages: any, isVersion: boolean = false, timeMap: Object = {}) => { return ( {Object.keys(packages) .reverse() .map(version => ( {version} {isVersion && timeMap[version] ? `${formatDateDistance(timeMap[version])} ago` : packages[version]} ))} ); }; // $FlowFixMe renderContent(packageMeta) { const { versions = {}, time: timeMap = {}, [DIST_TAGS]: distTags = {} } = packageMeta; return ( <> {distTags && ( <> {'Current Tags'} {this.renderPackageList(distTags, false, timeMap)} )} {versions && ( <> {'Version History'} {this.renderPackageList(versions, true, timeMap)} )} ); } } export default Versions;