More destructuring and removing componentWillReceiveProps

This commit is contained in:
James Barnsley
2020-03-05 21:32:54 +13:00
parent e184f01503
commit dd7da72240
15 changed files with 433 additions and 588 deletions

View File

@ -2,38 +2,41 @@
import React, { memo } from 'react';
import URILink from './URILink';
export default memo((props) => {
if (!props.items) {
return <span className={props.className ? `${props.className} links-sentence` : 'links-sentence'}>-</span>;
}
export default memo(({ items, className, nolinks }) => {
if (!items) return <span className={`${className} links-sentence`}>-</span>;
return (
<span className={props.className ? `${props.className} links-sentence` : 'links-sentence'}>
<span className={`${className} links-sentence`}>
{
props.items.map((item, index) => {
if (!item) {
return <span>-</span>;
}
items.map(({ name, uri }, index) => {
if (!name) return <span>-</span>;
let separator = null;
if (index == props.items.length - 2) {
if (index == items.length - 2) {
separator = ' and ';
} else if (index < props.items.length - 2) {
} else if (index < items.length - 2) {
separator = ', ';
}
if (!item.name) {
if (!name) {
var content = <span>-</span>;
} else if (!item.uri || props.nolinks) {
var content = <span>{ item.name }</span>;
} else if (!uri || nolinks) {
var content = <span>{name}</span>;
} else {
var content = <URILink className="links-sentence__item links-sentence__item--link" uri={item.uri}>{ item.name }</URILink>;
var content = (
<URILink
className="links-sentence__item links-sentence__item--link"
uri={uri}
>
{name}
</URILink>
);
}
return (
<span key={`index_${item.uri}`}>
{ content }
{ separator }
<span key={`index_${uri}`}>
{content}
{separator}
</span>
);
})