import React, { Component, ReactNode } from 'react'; import Avatar from '@material-ui/core/Avatar'; import List from '@material-ui/core/List'; import ListItemText from '@material-ui/core/ListItemText'; import { DetailContextConsumer } from '../../pages/version/Version'; import { Heading, AuthorListItem } from './styles'; import { isEmail } from '../../utils/url'; class Authors extends Component { render() { return ( {(context: any) => { return context && context.packageMeta && this.renderAuthor(context.packageMeta); }} ); } renderLinkForMail(email: string, avatarComponent: ReactNode, packageName: string, version: string) { if (!email || isEmail(email) === false) { return avatarComponent; } return ( {avatarComponent} ); } renderAuthor = packageMeta => { const { author, name: packageName, version } = packageMeta.latest; if (!author) { return null; } const avatarComponent = ; return ( {'Author'}}> {this.renderLinkForMail(author.email, avatarComponent, packageName, version)} ); }; } export default Authors;