cbillowes/curious-programmer-helium

View on GitHub
src/components/PostListing/PostListing.jsx

Summary

Maintainability
A
0 mins
Test Coverage
import React from "react"
import Metadata from "../Metadata/Post/Metadata"
import "./PostListing.scss"

class PostListing extends React.Component {
  getPostList() {
    const postList = []
    this.props.postEdges.forEach((postEdge) => {
      postList.push({
        path: postEdge.node.fields.slug,
        tags: postEdge.node.frontmatter.tags,
        cover: postEdge.node.frontmatter.cover,
        title: postEdge.node.frontmatter.title,
        date: postEdge.node.fields.date,
        excerpt: postEdge.node.excerpt,
        timeToRead: postEdge.node.timeToRead
      })
    })
    return postList
  }
  render() {
    const list = this.getPostList()
    return (
      <div className="posts">
        {list.map((post) => {
          return (
            <section key={`post-${post.path}`}>
              <h1>
                <a href={post.path}>
                  {post.title}
                </a>
              </h1>
              <p>{post.excerpt}</p>
              <Metadata tags={post.tags} date={post.date} timeToRead={post.timeToRead} />
              <hr />
            </section>
          )
        })}
      </div>
    )
  }
}

export default PostListing