/* 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 and React Router import { makeStyles, styled } from "@material-ui/core/styles"; import withStyles from "@material-ui/core/styles/withStyles"; 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 DoneIcon from "@material-ui/icons/Done"; // 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: 5 }, 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 { constructor() { super(); this.state = { profile: window.location.pathname.split("/").pop(), imageUrl: null, topics: null, user: null, following: null, posts: null, myTopics: null, followingList: null }; } handleSub = () => { if (this.state.following === true) { axios .post("/removeSub", { unfollow: this.state.profile }) .then(res => { console.log("removed sub"); this.setState({ following: false }); }) .catch(function(err) { console.log(err); }); } else { axios .post("/addSubscription", { following: this.state.profile }) .then(res => { console.log("adding sub"); this.setState({ following: true }); }) .catch(function(err) { console.log(err); }); } }; handleAdd = newTopic => { axios .post("/putNewTopic", { handle: this.state.profile, topic: newTopic }) .then(() => { let temp = this.state.myTopics; temp.push(newTopic); this.setState({ myTopics: temp }); }) .catch(err => { console.err(err); }); }; componentDidMount() { axios .post("/getUserDetails", { handle: this.state.profile }) .then(res => { this.setState({ imageUrl: res.data.userData.imageUrl, topics: res.data.userData.followedTopics }); }) .catch(err => console.log(err)); axios .get("/user") .then(res => { // console.log(res.data.credentials.following); let list = []; let fol = false; res.data.credentials.following.forEach(follow => { console.log(follow); if (this.state.profile === follow.handle) { fol = true; list = follow.topics; } }); this.setState({ following: fol, myTopics: list }); }) .catch(err => console.log(err)); axios .post("/getOtherUsersPosts", { handle: this.state.profile }) .then(res => { // console.log(res.data); this.setState({ posts: res.data }); }) .catch(err => console.log(err)); axios .get("/getAlert") .then(res => { let temp = this.state.posts; // console.log(res.data); res.data.forEach(element => { element ? temp.push(element) : console.err; }); // temp.push(res.data[0]); this.setState({ posts: temp }); }) .catch(function(err) { console.log(err); }); } render() { const { classes } = this.props; let followMarkup = this.state.following ? ( ) : ( ); let profileMarkup = this.state.profile ? (
loading username...
); // console.log(this.state.topics); // console.log(this.state.myTopics); let topicsMarkup = this.state.topics ? ( this.state.topics.map( topic => this.state.myTopics ? ( this.state.myTopics.includes(topic) ? (no topic yet
); let imageMarkup = this.state.imageUrl ? (Posts
); return (