mirror of
https://github.com/mastermindzh/rickvanlieshout.com
synced 2025-04-06 07:14:02 +02:00
81 lines
2.2 KiB
JavaScript
81 lines
2.2 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import Link from 'gatsby-link';
|
|
import moment from 'moment';
|
|
import Disqus from '../Disqus/Disqus';
|
|
import './style.scss';
|
|
|
|
class PostTemplateDetails extends React.Component {
|
|
render() {
|
|
const { subtitle, author } = this.props.data.site.siteMetadata;
|
|
const post = this.props.data.markdownRemark;
|
|
const tags = post.fields.tagSlugs;
|
|
|
|
const homeBlock = (
|
|
<div>
|
|
<Link className="post-single__home-button" to="/">All Articles</Link>
|
|
</div>
|
|
);
|
|
|
|
const tagsBlock = (
|
|
<div className="post-single__tags">
|
|
<ul className="post-single__tags-list">
|
|
{tags.map((tag, i) =>
|
|
<li className="post-single__tags-list-item" key={tag}>
|
|
<Link to={tag} className="post-single__tags-list-item-link">
|
|
{post.frontmatter.tags[i]}
|
|
</Link>
|
|
</li>
|
|
)}
|
|
</ul>
|
|
</div>
|
|
);
|
|
|
|
const commentsBlock = (
|
|
<div>
|
|
<Disqus postNode={post} />
|
|
</div>
|
|
);
|
|
|
|
return (
|
|
<div>
|
|
{homeBlock}
|
|
<div className="post-single">
|
|
<div className="post-single__inner">
|
|
<h1 className="post-single__title">{post.frontmatter.title}</h1>
|
|
<div className="post-single__body" dangerouslySetInnerHTML={{ __html: post.html }} />
|
|
<div className="post-single__date">
|
|
<em>Published {moment(post.frontmatter.date).format('D MMM YYYY')}</em>
|
|
</div>
|
|
</div>
|
|
<div className="post-single__footer">
|
|
{tagsBlock}
|
|
<hr />
|
|
<p className="post-single__footer-text">
|
|
{subtitle}
|
|
<a href={author.twitter} target="_blank" rel="noopener noreferrer">
|
|
<br /> <strong>{author.name}</strong> on Twitter
|
|
</a>
|
|
</p>
|
|
{commentsBlock}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
PostTemplateDetails.propTypes = {
|
|
data: PropTypes.shape({
|
|
site: PropTypes.shape({
|
|
siteMetadata: PropTypes.shape({
|
|
subtitle: PropTypes.string.isRequired,
|
|
author: PropTypes.object.isRequired
|
|
})
|
|
}),
|
|
markdownRemark: PropTypes.object.isRequired
|
|
})
|
|
};
|
|
|
|
export default PostTemplateDetails;
|