rickvanlieshout.com/components/ReadNext/index.jsx

49 lines
1.2 KiB
React
Raw Normal View History

import React from 'react';
import { Link } from 'react-router';
import { include as includes } from 'underscore.string';
import find from 'lodash/find';
2016-03-11 23:28:19 +01:00
import './style.css';
2016-03-11 23:28:19 +01:00
class ReadNext extends React.Component {
render() {
const { post } = this.props;
const { pages } = this.props.route;
const { readNext } = post;
let nextPost;
if (readNext) {
nextPost = find(pages, page => includes(page.path, readNext));
}
if (!nextPost) {
return React.createElement('noscript', null);
2016-03-11 23:28:19 +01:00
}
nextPost = find(pages, page => includes(page.path, readNext.slice(1, -1)));
const description = nextPost.data.description;
return (
<div>
<h6 style={{ fontSize: '16px', margin: '20px 0 0' }}>READ THIS NEXT:</h6>
<h3 style={{ margin: '5px 0 0' }}>
<Link to={nextPost.path} query={{ readNext: true }}>
{nextPost.data.title}
</Link>
</h3>
<p className="description">
{description}
</p>
</div>
);
}
2016-03-11 23:28:19 +01:00
}
ReadNext.propTypes = {
post: React.PropTypes.object.isRequired,
pages: React.PropTypes.array,
route: React.PropTypes.object,
};
export default ReadNext;
2016-03-11 23:28:19 +01:00