Skip to content
Snippets Groups Projects
ProfilePosts.js 3.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • Ludvig Damberg's avatar
    Ludvig Damberg committed
    import React, { useState, useEffect } from 'react'
    import styles from '../styles/feed.module.css'
    import { FaSearch } from "react-icons/fa";
    import axios from 'axios'
    import jwt_decode from 'jwt-decode';
    import Loading from './Loading';
    
    
    
    
    
    const ProfilePosts = () => {
    
    
        const [posts, setPosts] = useState(null)
        const [searchFilter, setSearchFilter] = useState([]);
        const [result, setResult] = useState("");
        const [loading, setLoading] = useState(true)
    
        const loadPosts = async () => {
    
            const token = localStorage.getItem('token');
            const decodedToken = jwt_decode(token);
            const author = decodedToken.userId;
    
            console.log(decodedToken.userId)
    
            await axios.get('http://localhost:5000/profilePosts', { headers: { author: `${author}` } },
            )
                .then((res) => {
                    setPosts(res.data);
    
                }).catch(err => console.log(err))
    
            setLoading(false)
        }
    
        const deletePost = async (image, id) => {
    
            console.log(image, id)
            await axios.post('http://localhost:5000/deletePost', {
                id: id, image: image
            }
            ).then((res) => {
                console.log(res)
                alert("sucessfully deleted")
            }).catch(err => console.log(err))
        }
    
        useEffect(() => {
            setLoading(true)
            loadPosts()
        }, [])
    
        if (loading) {
            return (
                <div>
    
    Ludvig Damberg's avatar
    Ludvig Damberg committed
                    <Loading />
    
    Ludvig Damberg's avatar
    Ludvig Damberg committed
                </div>
            )
        } else
    
    Ludvig Damberg's avatar
    Ludvig Damberg committed
            return (
                <div className={styles.container}>
                    <div>{posts.map((post) => {
                        return (
                            <div className={styles.wrapper}>
                                <div className={styles.posts_container} key={post._id}>
    
    Ludvig Damberg's avatar
    Ludvig Damberg committed
                                   
                                        <img className={styles.post_img_container2} src={`http://localhost:5000/uploads/${post.photo}`} />
                                   
    
    Ludvig Damberg's avatar
    Ludvig Damberg committed
                                    <div>
                                        <h1>{post.name}</h1>
                                        <div >
                                            <h3>Recipe:</h3>
                                            <div className={styles.tag_container}>
                                                <ul>
                                                    {post.recipe[0].split(',').map((ingredient, index) => (
                                                        <li key={index}>
                                                            {ingredient}
                                                        </li>
                                                    ))}
                                                </ul>
                                            </div>
                                        </div>
    
                                        <div className={styles.description}>Description: <p>{post.description}</p> </div>
    
    Ludvig Damberg's avatar
    Ludvig Damberg committed
    
    
    Ludvig Damberg's avatar
    Ludvig Damberg committed
                                    </div>
                                </div>
    
    Ludvig Damberg's avatar
    Ludvig Damberg committed
                                <button className={styles.delete} onClick={() => deletePost(post.photo, post._id)}>delete</button>
                            </div>
    
    Ludvig Damberg's avatar
    Ludvig Damberg committed
                        )
                    })}</div>
                </div>
            )
    
    Ludvig Damberg's avatar
    Ludvig Damberg committed
    }
    
    export default ProfilePosts