0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-02-17 23:45:29 -05:00

refactor: versions and footer snapshot

This commit is contained in:
Ayush Sharma 2019-02-19 22:24:43 +01:00
parent 811bd81d07
commit 31860540e1
6 changed files with 36 additions and 28 deletions

View file

@ -96,14 +96,18 @@ class Dependencies extends Component<any, any> {
const { latest } = packageMeta;
const { dependencies, devDependencies, peerDependencies, name } = latest;
if (dependencies || devDependencies || peerDependencies) {
return (
<Fragment>
{this.checkDependencyLength(dependencies) && <DependencyBlock dependencies={dependencies} title={'Dependencies'} />}
{this.checkDependencyLength(devDependencies) && <DependencyBlock dependencies={devDependencies} title={'DevDependencies'} />}
{this.checkDependencyLength(peerDependencies) && <DependencyBlock dependencies={peerDependencies} title={'PeerDependencies'} />}
</Fragment>
);
const dependencyMap = { dependencies, devDependencies, peerDependencies };
const dependencyList = Object.keys(dependencyMap).reduce((result, value, key) => {
const selectedDepndency = dependencyMap[value];
if (selectedDepndency && this.checkDependencyLength(selectedDepndency)) {
result.push(<DependencyBlock dependencies={selectedDepndency} key={key} title={value} />);
}
return result;
}, []);
if (dependencyList.length) {
return <Fragment>{dependencyList}</Fragment>;
}
return <NoItems text={`${name} has no dependencies.`} />;
}

View file

@ -17,6 +17,7 @@ export const CardWrap = styled(Card)`
export const Heading = styled(Typography)`
&& {
font-weight: 700;
text-transform: capitalize;
}
`;

View file

@ -17,7 +17,7 @@ export const Heading = styled(Typography)`
export const InstallItem = styled(ListItem)`
&& {
padding: 0 0 0 0;
padding: 0;
}
`;

View file

@ -38,7 +38,6 @@ class UpLinks extends React.PureComponent<any> {
);
renderContent(uplinks, { name }) {
console.log(uplinks);
if (Object.keys(uplinks).length > 0) {
return (
uplinks && (

View file

@ -17,40 +17,44 @@ class Versions extends React.PureComponent<any> {
// $FlowFixMe
<DetailContextConsumer>
{({ packageMeta }) => {
return this.renderContent(packageMeta[DIST_TAGS], packageMeta.versions);
return this.renderContent(packageMeta);
}}
</DetailContextConsumer>
);
}
renderPackageList = (packages: any, isVersion: boolean = false) => (
<List>
{Object.keys(packages)
.reverse()
.map(version => (
<ListItem key={version}>
<ListItemText>{version}</ListItemText>
<Spacer />
<ListItemText>{isVersion ? `${formatDateDistance('2017-10-26T09:03:15.044Z')} ago` : packages[version]}</ListItemText>
</ListItem>
))}
</List>
);
renderPackageList = (packages: any, isVersion: boolean = false, timeMap: Object = {}) => {
return (
<List>
{Object.keys(packages)
.reverse()
.map(version => (
<ListItem key={version}>
<ListItemText>{version}</ListItemText>
<Spacer />
<ListItemText>{isVersion && timeMap[version] ? `${formatDateDistance(timeMap[version])} ago` : packages[version]}</ListItemText>
</ListItem>
))}
</List>
);
};
// $FlowFixMe
renderContent(distTags: object, versions: object) {
renderContent(packageMeta) {
const { versions = {}, time: timeMap = {}, [DIST_TAGS]: distTags = {} } = packageMeta;
return (
<>
{distTags && (
<>
<Heading variant={'subheading'}>{'Current Tags'}</Heading>
{this.renderPackageList(distTags)}
{this.renderPackageList(distTags, false, timeMap)}
</>
)}
{versions && (
<>
<Heading variant={'subheading'}>{'Version History'}</Heading>
{this.renderPackageList(versions, true)}
{this.renderPackageList(versions, true, timeMap)}
</>
)}
</>

View file

@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<Footer /> component should load the initial state of Footer component 1`] = `"<div class=\\"css-i0nj2g efsnl070\\"><div class=\\"css-hzfs9b efsnl071\\"><div class=\\"css-d8nsp7 efsnl072\\"> Made with<span class=\\"css-1so4oe0 efsnl077\\">♥</span>on<span class=\\"css-1ie354y efsnl074\\"><svg class=\\"efsnl075 css-1kgp95j ej4jd2o0\\"><title>Earth</title><use xlink:href=\\"[object Object]#earth\\"></use></svg><span class=\\"css-e8kfuf efsnl076\\"><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>Spain</title><use xlink:href=\\"[object Object]#spain\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>Nicaragua</title><use xlink:href=\\"[object Object]#nicaragua\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>India</title><use xlink:href=\\"[object Object]#india\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>Brazil</title><use xlink:href=\\"[object Object]#brazil\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>Pakistan</title><use xlink:href=\\"[object Object]#pakistan\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>China</title><use xlink:href=\\"[object Object]#china\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>Austria</title><use xlink:href=\\"[object Object]#austria\\"></use></svg></span></span></div><div class=\\"css-1wbzdyy efsnl073\\">Powered by<span class=\\"efsnl078 css-i15wza ej4jd2o1\\" title=\\"Verdaccio\\"><img alt=\\"Verdaccio\\" src=\\"[object Object]\\" class=\\"css-1ncdhax ej4jd2o2\\"></span>/ 4.0.0-alpha.3</div></div></div>"`;
exports[`<Footer /> component should load the initial state of Footer component 1`] = `"<div class=\\"css-i0nj2g efsnl070\\"><div class=\\"css-hzfs9b efsnl071\\"><div class=\\"css-d8nsp7 efsnl072\\"> Made with<span class=\\"css-1so4oe0 efsnl077\\">♥</span>on<span class=\\"css-1ie354y efsnl074\\"><svg class=\\"efsnl075 css-1kgp95j ej4jd2o0\\"><title>Earth</title><use xlink:href=\\"[object Object]#earth\\"></use></svg><span class=\\"css-e8kfuf efsnl076\\"><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>Spain</title><use xlink:href=\\"[object Object]#spain\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>Nicaragua</title><use xlink:href=\\"[object Object]#nicaragua\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>India</title><use xlink:href=\\"[object Object]#india\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>Brazil</title><use xlink:href=\\"[object Object]#brazil\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>China</title><use xlink:href=\\"[object Object]#china\\"></use></svg><svg class=\\"efsnl078 css-f1ndto ej4jd2o0\\"><title>Austria</title><use xlink:href=\\"[object Object]#austria\\"></use></svg></span></span></div><div class=\\"css-1wbzdyy efsnl073\\">Powered by<span class=\\"efsnl078 css-i15wza ej4jd2o1\\" title=\\"Verdaccio\\"><img alt=\\"Verdaccio\\" src=\\"[object Object]\\" class=\\"css-1ncdhax ej4jd2o2\\"></span>/ 4.0.0-alpha.3</div></div></div>"`;