Update NotificationCard.vue

This commit is contained in:
Daniel Supernault 2019-05-05 13:23:34 -06:00
parent 347051c7e3
commit 6c0e14793a
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -67,7 +67,8 @@
data() { data() {
return { return {
notifications: {}, notifications: {},
notificationCursor: 2 notificationCursor: 2,
notificationMaxId: 0,
}; };
}, },
@ -91,9 +92,12 @@
} }
return true; return true;
}); });
let ids = res.data.map(n => n.id);
this.notificationMaxId = Math.max(...ids);
this.notifications = data; this.notifications = data;
$('.notification-card .loader').addClass('d-none'); $('.notification-card .loader').addClass('d-none');
$('.notification-card .contents').removeClass('d-none'); $('.notification-card .contents').removeClass('d-none');
//this.notificationPoll();
}); });
}, },
@ -161,6 +165,32 @@
let username = status.account.username; let username = status.account.username;
let id = status.id; let id = status.id;
return '/p/' + username + '/' + id; return '/p/' + username + '/' + id;
},
notificationPoll() {
let interval = this.notifications.length > 5 ? 15000 : 120000;
let self = this;
setInterval(function() {
axios.get('/api/v1/notifications')
.then(res => {
let data = res.data.filter(n => {
if(n.type == 'share' || self.notificationMaxId >= n.id) {
return false;
}
return true;
});
if(data.length) {
let ids = data.map(n => n.id);
self.notificationMaxId = Math.max(...ids);
self.notifications.unshift(...data);
let beep = new Audio('/static/beep.mp3');
beep.volume = 0.7;
beep.play();
$('.notification-card .far.fa-bell').addClass('fas text-danger').removeClass('far text-muted');
}
});
}, interval);
} }
} }
} }