fonctionnalité like and dislike of a post
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
8d1f0b9a6f
commit
c8617388c7
@ -0,0 +1,12 @@
|
||||
.no-style {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
font: inherit;
|
||||
color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.no-style:focus {
|
||||
outline: none;
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.querySelectorAll('.like-toggle').forEach(button => {
|
||||
button.addEventListener('click', function(event) {
|
||||
event.preventDefault();
|
||||
|
||||
let postId = this.dataset.postId;
|
||||
let isLiked = this.classList.contains('liked');
|
||||
let url = isLiked ? this.dataset.unlikeUrl : this.dataset.likeUrl;
|
||||
|
||||
fetch(url, { method: 'POST' })
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
let likesCountElement = this.parentElement.querySelector('.likes-count');
|
||||
let likesCount = parseInt(likesCountElement.textContent);
|
||||
|
||||
if (isLiked) {
|
||||
likesCount--;
|
||||
} else {
|
||||
likesCount++;
|
||||
}
|
||||
|
||||
likesCountElement.textContent = likesCount;
|
||||
this.classList.toggle('liked');
|
||||
this.classList.toggle('not-liked');
|
||||
this.innerHTML = isLiked ? '♡' : '❤️';
|
||||
} else {
|
||||
console.error('Erreur lors du traitement du like/unlike.');
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Erreur lors de la requête fetch:', error);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in new issue