1
0
Fork 1
mirror of https://github.com/pixelfed/pixelfed.git synced 2024-12-25 01:05:36 +00:00

Update likebutton.js

This commit is contained in:
Daniel Supernault 2018-06-03 20:20:39 -06:00
parent dba78c24cc
commit b2f20eb8a6

View file

@ -1,6 +1,29 @@
$(document).ready(function() { $(document).ready(function() {
if(!ls.get('likes')) { if(!ls.get('likes')) {
axios.get('/api/v1/likes')
.then(function (res) {
ls.set('likes', res.data);
console.log(res);
})
.catch(function (res) {
ls.set('likes', []); ls.set('likes', []);
})
}
hydrateLikes();
function hydrateLikes() {
var likes = ls.get('likes');
$('.like-form').each(function(i, el) {
var el = $(el);
var id = el.data('id');
var heart = el.find('.status-heart');
if(likes.indexOf(id) != -1) {
heart.addClass('fas fa-heart').removeClass('far fa-heart');
}
});
} }
$('.like-form').submit(function(e) { $('.like-form').submit(function(e) {
@ -10,19 +33,26 @@ $(document).ready(function() {
var res = axios.post('/i/like', {item: id}); var res = axios.post('/i/like', {item: id});
var likes = ls.get('likes'); var likes = ls.get('likes');
var action = false; var action = false;
var counter = el.parent().parent().find('.like-count'); var counter = el.parents().eq(2).find('.like-count');
var count = parseInt(counter.text()); var count = parseInt(counter.text());
var heart = el.find('.status-heart');
if(likes.indexOf(id) > -1) { if(likes.indexOf(id) > -1) {
likes.splice(id, 1); heart.addClass('far fa-heart').removeClass('fas fa-heart');
count--; likes = likes.filter(function(item) {
return item !== id
});
count = count == 0 ? 0 : count--;
counter.text(count); counter.text(count);
action = 'unlike'; action = 'unlike';
} else { } else {
heart.addClass('fas fa-heart').removeClass('far fa-heart');
likes.push(id); likes.push(id);
count++; count++;
counter.text(count); counter.text(count);
action = 'like'; action = 'like';
} }
ls.set('likes', likes); ls.set('likes', likes);
console.log(action + ' - ' + $(this).data('id') + ' like event'); console.log(action + ' - ' + $(this).data('id') + ' like event');
}); });