|
@@ -1,6 +1,29 @@
|
|
$(document).ready(function() {
|
|
$(document).ready(function() {
|
|
|
|
+
|
|
if(!ls.get('likes')) {
|
|
if(!ls.get('likes')) {
|
|
- ls.set('likes', []);
|
|
|
|
|
|
+ axios.get('/api/v1/likes')
|
|
|
|
+ .then(function (res) {
|
|
|
|
+ ls.set('likes', res.data);
|
|
|
|
+ console.log(res);
|
|
|
|
+ })
|
|
|
|
+ .catch(function (res) {
|
|
|
|
+ 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);
|
|
|
|
- count--;
|
|
|
|
|
|
+ heart.addClass('far fa-heart').removeClass('fas fa-heart');
|
|
|
|
+ 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');
|
|
});
|
|
});
|