forked from sombochea/verdaccio-ui
b74ca2285e
* refactor:116[PackageList] component is converted to functional * Refactor:#116 - Registry info content is converted to functional component * refactor/116 - fix lint error * refactor:116 - more lint errors * refactor/116 - lint error * refactor:116 - remove snapshot * refactor: address code review comments #116 * refactor: fix lint error * refactor: code review changes * refactor add missed file * refactor: lint error * refactor: lint * refactor: lint * refactor: fix lint error
39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import React, { Fragment, ReactNode } from 'react';
|
|
|
|
import Package from '../Package';
|
|
import Help from '../Help';
|
|
import { formatLicense } from '../../utils/package';
|
|
import { PackageInterface } from '../Package/Package';
|
|
import Divider from '../../muiComponents/Divider';
|
|
|
|
import * as classes from './styles';
|
|
|
|
interface Props {
|
|
packages: PackageInterface[];
|
|
}
|
|
|
|
export const PackageList: React.FC<Props> = ({ packages }) => {
|
|
const renderPackages: () => ReactNode[] = () => {
|
|
return packages.map(({ name, version, description, time, keywords, dist, homepage, bugs, author, license }, i) => {
|
|
// TODO: move format license to API side.
|
|
const _license = formatLicense(license);
|
|
return (
|
|
<Fragment key={i}>
|
|
{i !== 0 && <Divider />}
|
|
<Package
|
|
{...{ name, dist, version, author, description, license: _license, time, keywords, homepage, bugs }}
|
|
/>
|
|
</Fragment>
|
|
);
|
|
});
|
|
};
|
|
|
|
const hasPackages: () => boolean = () => packages.length > 0;
|
|
|
|
return (
|
|
<div className={'package-list-items'}>
|
|
<div className={classes.pkgContainer}>{hasPackages() ? renderPackages() : <Help />}</div>
|
|
</div>
|
|
);
|
|
};
|