ChFlick/blogstoph

View on GitHub
src/components/PostPage.jsx

Summary

Maintainability
A
0 mins
Test Coverage
import React from 'react';
import Markdown from 'react-markdown';
import { connect } from 'react-redux';
import moment from 'moment';

import { getPostByIdOrTitle } from '../selectors/posts';

export const PostPage = ({ post }) => (
    <article>
        <header className="page-header">
            <div className="content-container align-left">
                <h1 className="page-header__title page-header__title--l">{post.title}</h1>
                <h2 className="page-header__subtitle">{post.subtitle}</h2>
                <p className="page-header__info">
                    Posted by {post.author} on <time>{moment(post.date).format('DD. MMM YYYY')}</time>
                </p>
            </div>
        </header>
        <Markdown
            source={post.content}
            className="content-container post"
        />
    </article>
);

const mapStateToProps = (state, props) => ({
    post: getPostByIdOrTitle(state.posts, props.match.params.id)
});

export default connect(mapStateToProps, undefined)(PostPage);