Converted ReadNext Component to ES6

This commit is contained in:
Gianluca Esposito 2015-09-10 22:54:25 +02:00
parent 3f78235061
commit 742b029244
2 changed files with 56 additions and 50 deletions

56
components/ReadNext.jsx Normal file
View file

@ -0,0 +1,56 @@
import React from 'react';
import { Link } from 'react-router';
import { prune, include as includes } from 'underscore.string';
import find from 'lodash/collection/find';
module.exports = React.createClass({
render: function() {
var body, fontSizeToMS, html, nextPost, readNext, ref, rhythm;
ref = this.props.typography, rhythm = ref.rhythm, fontSizeToMS = ref.fontSizeToMS;
readNext = this.props.post.readNext;
if (readNext != null) {
nextPost = find(this.props.pages, function(page) {
return includes(page.path, readNext.slice(1, -1));
});
}
if (!nextPost) {
return React.createElement("noscript", null);
} else {
nextPost = find(this.props.pages, function(page) {
return includes(page.path, readNext.slice(1, -1));
});
// Create pruned version of the body.
html = nextPost.data.body;
body = prune(html.replace(/<[^>]*>/g, ''), 200);
return (
<div>
<h6
style={{
margin: 0,
fontSize: fontSizeToMS(-1).fontSize,
lineHeight: fontSizeToMS(-1).lineHeight,
letterSpacing: -0.5
}}
>
READ THIS NEXT:
</h6>
<h3
style={{
marginBottom: rhythm(1/4)
}}
>
<Link
to={nextPost.path}
query={{readNext: true}}
>
{nextPost.data.title}
</Link>
</h3>
<p>{body}</p>
<hr />
</div>
);
}
}
});