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.
36 lines
1.4 KiB
36 lines
1.4 KiB
document.addEventListener('DOMContentLoaded', function() {
|
|
document.querySelectorAll('.like-toggle').forEach(button => {
|
|
button.addEventListener('click', function (event) {
|
|
event.preventDefault();
|
|
|
|
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.toString();
|
|
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);
|
|
});
|
|
});
|
|
});
|
|
});
|