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