From f0ddaa30b1b6753e295298ea46c81e3b9e6f1dcf Mon Sep 17 00:00:00 2001 From: Leon Liang Date: Mon, 2 Dec 2019 18:31:33 -0500 Subject: [PATCH] add topics when publish new post --- twistter-frontend/src/Writing_Microblogs.js | 17 +++- twistter-frontend/src/pages/Home.js | 102 ++++++++++++-------- 2 files changed, 75 insertions(+), 44 deletions(-) diff --git a/twistter-frontend/src/Writing_Microblogs.js b/twistter-frontend/src/Writing_Microblogs.js index 9cac7b7..4d7484d 100644 --- a/twistter-frontend/src/Writing_Microblogs.js +++ b/twistter-frontend/src/Writing_Microblogs.js @@ -40,15 +40,28 @@ class Writing_Microblogs extends Component { }; axios - .post("/putPost", postData, headers) + .post("/putPost", postData, headers) // TODO: add topics .then(res => { - alert("Post was shared successfully!"); + // alert("Post was shared successfully!"); console.log(res.data); }) .catch(err => { alert("An error occured."); console.error(err); }); + console.log(postData.microBlogTopics); + postData.microBlogTopics.forEach(topic => { + axios + .post("/putTopic", { + following: topic + }) + .then(res => { + console.log(res.data); + }) + .catch(err => { + console.error(err); + }); + }); event.preventDefault(); this.setState({ value: "", title: "", characterCount: 250, topics: "" }); } diff --git a/twistter-frontend/src/pages/Home.js b/twistter-frontend/src/pages/Home.js index cee0a93..956ccf0 100644 --- a/twistter-frontend/src/pages/Home.js +++ b/twistter-frontend/src/pages/Home.js @@ -1,20 +1,20 @@ /* eslint-disable */ -import React, { Component } from 'react'; -import PropTypes from 'prop-types'; -import { connect } from 'react-redux'; -import axios from 'axios'; +import React, { Component } from "react"; +import PropTypes from "prop-types"; +import { connect } from "react-redux"; +import axios from "axios"; // Material UI and React Router -import Grid from '@material-ui/core/Grid'; -import Card from '@material-ui/core/Card'; -import CardContent from '@material-ui/core/CardContent'; +import Grid from "@material-ui/core/Grid"; +import Card from "@material-ui/core/Card"; +import CardContent from "@material-ui/core/CardContent"; import Typography from "@material-ui/core/Typography"; // component -import '../App.css'; -import logo from '../images/twistter-logo.png'; -import noImage from '../images/no-img.png'; -import Writing_Microblogs from '../Writing_Microblogs'; +import "../App.css"; +import logo from "../images/twistter-logo.png"; +import noImage from "../images/no-img.png"; +import Writing_Microblogs from "../Writing_Microblogs"; class Home extends Component { state = {}; @@ -26,7 +26,7 @@ class Home extends Component { console.log(res.data); this.setState({ posts: res.data - }) + }); }) .catch(err => console.log(err)); } @@ -35,31 +35,43 @@ class Home extends Component { let authenticated = this.props.user.authenticated; let postMarkup = this.state.posts ? ( - this.state.posts.map(post => + this.state.posts.map(post => ( - { - this.state.imageUrl ? () : - () - } + {this.state.imageUrl ? ( + + ) : ( + + )} + + + {post.userHandle} + + + {post.createdAt} - {post.userHandle} - {post.createdAt}
- {post.microBlogTitle} + + {post.microBlogTitle} + {post.body}
- Topics: {post.microBlogTopics} + + Topics: {post.microBlogTopics} +
- Likes {post.likeCount} Comments {post.commentCount} + + Likes {post.likeCount} Comments {post.commentCount} +
- ) - ) : (

My Posts

); + )) + ) : ( +

Loading post...

+ ); - return ( - authenticated ? + return authenticated ? ( @@ -67,26 +79,32 @@ class Home extends Component { {postMarkup} - - : + + ) : (
logo -

- Welcome to Twistter! -

- See the most interesting topics people are following right now. +
+
+ Welcome to Twistter! +
+
+ See the most interesting topics people are following right now.
-



+
+
+
+
-
- Join today or sign in if you already have an account. -

+
+ Join today or sign in if you already have an account. +
+
- +
-
+
@@ -96,12 +114,12 @@ class Home extends Component { } } -const mapStateToProps = (state) => ({ +const mapStateToProps = state => ({ user: state.user -}) +}); Home.propTypes = { user: PropTypes.object.isRequired -} +}; -export default connect(mapStateToProps)(Home); \ No newline at end of file +export default connect(mapStateToProps)(Home);