You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
2.3 KiB

import React, { useContext, useEffect, useState } from 'react';
import { useDispatch } from 'react-redux';
import { deleteComment, editComment } from '../../actions/post.actions';
import { UidContext } from '../AppContext';
const ActionComment = ( { commentaire , postId}) => {
const [createur, setCreateur] = useState(false);
const [edit, setEdit] = useState(false);
const [message,setMessage] = useState('');
const uid = useContext(UidContext);
const dispatch = useDispatch();
const handleEdit = (e) => {
e.preventDefault();
if(message){
dispatch(editComment(postId, commentaire._id, message));
setMessage('');
setEdit(false);
}
};
const handleDelete = () => {
dispatch(deleteComment(postId, commentaire._id));
};
useEffect(() => {
const verifCreateur = () => {
if(uid === commentaire.commentId){
setCreateur(true);
}
}
console.log(commentaire);
verifCreateur();
console.log(createur);
}, [uid, commentaire.commenterId]);
return (
<div className="edit-comment">
{createur && edit === false && (
<span onClick={() => setEdit(!edit)}>
<i className='fas fa-edit'></i>
</span>
)}
{createur && edit && (
<form action="" onSubmit={handleEdit}
className="edit-comment-form">
<label htmlFor='text' onClick={() => setEdit(!edit)}>Modifier le commentaire</label>
<input type="text" name="text" onChange={(e) => setMessage(e.target.value)} defaultValue={commentaire.text}/>
<br/>
<div className="btn">
<span onClick={() => {
if(window.confirm("Etes-vous sur de supprimer ce commentaire ?")){
handleDelete();
}
}}>
<i className="fas fa-trash-alt"></i>
</span>
</div>
<input type="submit" value="Modifier"/>
</form>
)}
</div>
);
};
export default ActionComment;