|
@@ -1,75 +0,0 @@
|
|
-$(document).ready(function() {
|
|
|
|
-
|
|
|
|
- pixelfed.fetchLikes = () => {
|
|
|
|
- let ts = Date.now();
|
|
|
|
- let offset = ts - 900000;
|
|
|
|
- let updated = ls.get('likesUpdated');
|
|
|
|
-
|
|
|
|
- if(updated != null && ls.get('likes').length > 0 || offset < updated) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- axios.get('/api/v1/likes')
|
|
|
|
- .then(function (res) {
|
|
|
|
- ls.set('likes', res.data);
|
|
|
|
- ls.set('likesUpdated', ts);
|
|
|
|
- })
|
|
|
|
- .catch(function (res) {
|
|
|
|
- ls.set('likes', []);
|
|
|
|
- ls.set('likesUpdated', ts);
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- pixelfed.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.removeClass('far text-dark').addClass('fas text-danger');
|
|
|
|
- } else {
|
|
|
|
- heart.removeClass('fas text-danger').addClass('far text-dark');
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- pixelfed.fetchLikes();
|
|
|
|
- pixelfed.hydrateLikes();
|
|
|
|
-
|
|
|
|
- $(document).on('submit', '.like-form', function(e) {
|
|
|
|
- e.preventDefault();
|
|
|
|
- var el = $(this);
|
|
|
|
- var id = el.data('id');
|
|
|
|
- axios.post('/i/like', {item: id})
|
|
|
|
- .then(function (res) {
|
|
|
|
- pixelfed.fetchLikes();
|
|
|
|
- pixelfed.hydrateLikes();
|
|
|
|
- var likes = ls.get('likes');
|
|
|
|
- var action = false;
|
|
|
|
- var counter = el.parents().eq(1).find('.like-count');
|
|
|
|
- var count = res.data.count;
|
|
|
|
- var heart = el.find('.status-heart');
|
|
|
|
-
|
|
|
|
- if(likes.indexOf(id) > -1) {
|
|
|
|
- heart.removeClass('fas text-danger').addClass('far text-dark');
|
|
|
|
- likes = likes.filter(function(item) {
|
|
|
|
- return item !== id
|
|
|
|
- });
|
|
|
|
- counter.text(count);
|
|
|
|
- action = 'unlike';
|
|
|
|
- } else {
|
|
|
|
- heart.removeClass('far text-dark').addClass('fas text-danger');
|
|
|
|
- likes.push(id);
|
|
|
|
- counter.text(count);
|
|
|
|
- action = 'like';
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- ls.set('likes', likes);
|
|
|
|
- ls.set('likesUpdated', Date.now());
|
|
|
|
- console.log(action + ' - ' + id + ' like event');
|
|
|
|
- });
|
|
|
|
- });
|
|
|
|
-});
|
|
|