Proyectos de Subversion LeadersLinked - Backend

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
7480 stevensc 1
import axios from 'axios'
7386 stevensc 2
import React, { useState } from 'react'
3
import CommentTemplate from './CommentTemplate'
4
 
5
const CommentSection = ({ owner_url, owner_image, comments, comments_link_add }) => {
6
 
7476 stevensc 7
    const [inputState, setInputState] = useState('')
7428 stevensc 8
    const [commentState, setCommentState] = useState(comments)
7386 stevensc 9
 
7428 stevensc 10
    const handleSubmit = (e) => {
11
        e.preventDefault()
12
 
7488 stevensc 13
        const formData = new FormData()
14
        formData.append("comment", inputState)
15
 
16
        axios.post(comments_link_add, formData)
7428 stevensc 17
            .then(({ data }) => {
18
                if (!data.success) {
19
                    return console.log("Error de envio")
20
                }
21
 
22
                setCommentState([...commentState, data.data])
7498 stevensc 23
                setInputState('')
7428 stevensc 24
            })
25
            .catch((err) => console.log(err))
26
    }
27
 
7498 stevensc 28
    const deleteComment = (id) => {
29
        setCommentState(commentState.filter((comment)=> comment.unique !== id))
30
    }
31
 
7386 stevensc 32
    return (
33
        <>
34
            <div className="d-flex mb-3">
35
                <div className="avatar avatar-xs me-2">
36
                    <a href={owner_url}>
37
                        <img
38
                            className="avatar-img rounded-circle"
39
                            src={owner_image}
40
                            alt="user avatar image"
41
                        />
42
                    </a>
43
                </div>
7428 stevensc 44
                <form className="w-100" onSubmit={(e) => handleSubmit(e)}>
45
                    <input
7386 stevensc 46
                        className="form-control pe-4 bg-light"
7428 stevensc 47
                        type='text'
7386 stevensc 48
                        placeholder="Escribe un comentario"
7476 stevensc 49
                        value={inputState}
50
                        onChange={(e) => setInputState(e.target.value)}
7386 stevensc 51
                    />
52
                </form>
53
            </div>
54
            <ul className="comment-wrap list-unstyled">
55
                {
7428 stevensc 56
                    commentState.map((comment) =>
7386 stevensc 57
                        <li className="comment-item">
58
                            <CommentTemplate
59
                                key={comment.unique}
60
                                feed_comment={comment}
7498 stevensc 61
                                deleteComment={deleteComment}
7386 stevensc 62
                            />
63
                        </li>
64
                    )
65
                }
66
            </ul>
67
        </>
68
    )
69
}
70
export default CommentSection