import React, { Component } from 'react'; import { Link, withRouter } from 'react-router'; import { drizzleConnect } from 'drizzle-react'; import PropTypes from 'prop-types'; import TimeAgo from 'react-timeago'; import epochTimeConverter from '../helpers/EpochTimeConverter'; import UserAvatar from 'react-user-avatar'; import ReactMarkdown from 'react-markdown'; class Post extends Component { constructor(props, context) { super(props); this.fetchPost = this.fetchPost.bind(this); this.orbitPostData = { content: "", subject: "" }; this.orbitPostDataFetchStatus = "pending"; } async fetchPost(postID) { this.orbitPostDataFetchStatus = "fetching"; var som = this.props.orbitDB.postsDB.get(postID); if (som){ this.orbitPostData = som; } this.orbitPostDataFetchStatus = "fetched"; } render(){ let avatarView = (this.props.blockchainData[0].returnData ? :
); return (
{this.props.blockchainData[0].returnData !== null ? {event.stopPropagation()}}> {avatarView} :avatarView }
{this.props.blockchainData[0].returnData !== null ?this.props.blockchainData[0].returnData[2] :"Username" } {this.props.blockchainData[0].returnData !== null && }{this.props.blockchainData[0].returnData !== null && ","} #{this.props.postIndex}
Subject: {this.orbitPostData.subject}
{this.orbitPostData.content ? :

Post content...

}
keyboard_arrow_up 8 keyboard_arrow_down { this.context.router.push("/topic/" + this.props.blockchainData[0].returnData[4] + "/" + this.props.postID)}}> link
); } componentDidUpdate() { if (this.props.blockchainData[0].status === "success" && this.orbitPostDataFetchStatus === "pending") { this.fetchPost(this.props.postID); } } }; Post.contextTypes = { router: PropTypes.object }; const mapStateToProps = state => { return { user: state.user, orbitDB: state.orbitDB } }; export default drizzleConnect(withRouter(Post), mapStateToProps);