/* eslint-disable */ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import axios from 'axios'; //import '../App.css'; // Material-UI import withStyles from '@material-ui/core/styles/withStyles'; import { makeStyles, styled } from '@material-ui/core/styles'; import { Link } from 'react-router-dom'; import Card from '@material-ui/core/Card'; import CardMedia from '@material-ui/core/CardMedia'; import CardContent from '@material-ui/core/CardContent'; import Button from '@material-ui/core/Button'; import Grid from '@material-ui/core/Grid'; import Chip from '@material-ui/core/Chip'; import Typography from '@material-ui/core/Typography'; import AddCircle from '@material-ui/icons/AddCircle'; import TextField from '@material-ui/core/TextField'; import VerifiedIcon from '@material-ui/icons/CheckSharp'; import Paper from '@material-ui/core/Paper'; import GridList from '@material-ui/core/GridList'; import GridListTile from '@material-ui/core/GridListTile'; import GridListTileBar from '@material-ui/core/GridListTileBar'; import Container from '@material-ui/core/Container'; // component import '../App.css'; import noImage from '../images/no-img.png'; import Writing_Microblogs from '../Writing_Microblogs'; const MyChip = styled(Chip)({ margin: 2, color: 'primary' }); const styles = { button: { positon: 'relative', float: 'left', marginLeft: 30, marginTop: 20 }, paper: { // marginLeft: "10%", // marginRight: "10%" }, card: { marginBottom: 10 }, profileImage: { marginTop: 20 }, topicsContainer: { border: 'lightgray solid 1px', marginTop: 20, paddingTop: 10, paddingBottom: 10, height: 300 }, addCircle: { width: 65, height: 65, marginTop: 10 }, username: { marginBottom: 100 } }; class user extends Component { state = { profile: null, imageUrl: null, topics: null, newTopic: null }; handleDelete = (topic) => { axios .delete(`/deleteTopic/${topic.id}`) .then(function() { location.reload(); }) .catch(function(err) { console.log(err); }); }; handleAddCircle = () => { axios .post('/putTopic', { topic: this.state.newTopic }) .then(function() { location.reload(); }) .catch(function(err) { console.log(err); }); }; handleChange(event) { this.setState({ newTopic: event.target.value }); } componentDidMount() { axios .get('/user') .then((res) => { this.setState({ profile: res.data.credentials.handle, imageUrl: res.data.credentials.imageUrl, verified: res.data.credentials.verified ? res.data.credentials.verified : false }); }) .catch((err) => console.log(err)); axios .get('/getAllTopics') .then((res) => { this.setState({ topics: res.data }); }) .catch((err) => console.log(err)); axios .get('/getallPostsforUser') .then((res) => { console.log(res.data); this.setState({ posts: res.data }); }) .catch((err) => console.log(err)); } render() { const { classes } = this.props; let authenticated = this.props.user.authenticated; let profileMarkup = this.state.profile ? (
@{this.state.profile} {this.state.verified ? : null}
) : (

loading username...

); let topicsMarkup = this.state.topics ? ( this.state.topics.map( (topic) => ( this.handleDelete(topic)} /> ) // console.log({ topic }.topic.id) ) ) : (

 loading topics...

); let imageMarkup = this.state.imageUrl ? ( ) : ( ); let postMarkup = this.state.posts ? ( this.state.posts.map((post) => ( {this.state.imageUrl ? ( ) : ( )} {post.userHandle} {post.createdAt}
{post.microBlogTitle} {post.body}
Topics: {post.microBlogTopics}
Likes {post.likeCount} Comments {post.commentCount}
)) ) : (

My Posts

); // FIX: This needs to check if user's profile page being displayed // is the same as the user who is logged in // Can't check for that right now, because this page is always // showing the logged in users profile, instead of retreiving the // profile based on the URL entered let editButtonMarkup = true ? ( ) : null; return (
{/* */} {editButtonMarkup} {/* */} {/* */} {imageMarkup} {profileMarkup} {/* */} {/* */} {/* {postMarkup} */} {/* */} {/* */} {topicsMarkup} this.handleChange(event)} /> {postMarkup}
); } } const mapStateToProps = (state) => ({ user: state.user }); user.propTypes = { user: PropTypes.object.isRequired }; export default connect(mapStateToProps)(withStyles(styles)(user));