forked from mirror/pixelfed
Update Notification components, fix old notifications with missing attributes
This commit is contained in:
parent
f9516ac316
commit
b6e226aef9
|
@ -146,6 +146,12 @@ export default {
|
|||
if(n.type == 'mention' && !n.status) {
|
||||
return false;
|
||||
}
|
||||
if(n.type == 'favourite' && !n.status) {
|
||||
return false;
|
||||
}
|
||||
if(n.type == 'follow' && !n.account) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
let ids = res.data.map(n => n.id);
|
||||
|
@ -168,13 +174,19 @@ export default {
|
|||
}).then(res => {
|
||||
if(res.data.length) {
|
||||
let data = res.data.filter(n => {
|
||||
if(n.type == 'share' && !status) {
|
||||
if(n.type == 'share' && !n.status) {
|
||||
return false;
|
||||
}
|
||||
if(n.type == 'comment' && !status) {
|
||||
if(n.type == 'comment' && !n.status) {
|
||||
return false;
|
||||
}
|
||||
if(n.type == 'mention' && !status) {
|
||||
if(n.type == 'mention' && !n.status) {
|
||||
return false;
|
||||
}
|
||||
if(n.type == 'favourite' && !n.status) {
|
||||
return false;
|
||||
}
|
||||
if(n.type == 'follow' && !n.account) {
|
||||
return false;
|
||||
}
|
||||
if(_.find(this.notifications, {id: n.id})) {
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<div v-if="n.type == 'favourite'">
|
||||
<p class="my-0">
|
||||
<a :href="getProfileUrl(n.account)" class="font-weight-bold text-dark word-break" :title="n.account.username">{{n.account.local == false ? '@':''}}{{truncate(n.account.username)}}</a> liked your
|
||||
<span v-if="n.status.hasOwnProperty('media_attachments')">
|
||||
<span v-if="n.status && n.status.hasOwnProperty('media_attachments')">
|
||||
<a class="font-weight-bold" v-bind:href="getPostUrl(n.status)" :id="'fvn-' + n.id">post</a>.
|
||||
<b-popover :target="'fvn-' + n.id" title="" triggers="hover" placement="top" boundary="window">
|
||||
<img :src="notificationPreview(n)" width="100px" height="100px" style="object-fit: cover;">
|
||||
|
@ -140,6 +140,12 @@
|
|||
if(n.type == 'mention' && !n.status) {
|
||||
return false;
|
||||
}
|
||||
if(n.type == 'favourite' && !n.status) {
|
||||
return false;
|
||||
}
|
||||
if(n.type == 'follow' && !n.account) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
let ids = data.map(n => n.id);
|
||||
|
@ -171,6 +177,12 @@
|
|||
if(n.type == 'mention' && !n.status) {
|
||||
return false;
|
||||
}
|
||||
if(n.type == 'favourite' && !n.status) {
|
||||
return false;
|
||||
}
|
||||
if(n.type == 'follow' && !n.account) {
|
||||
return false;
|
||||
}
|
||||
if(_.find(this.notifications, {id: n.id})) {
|
||||
return false;
|
||||
}
|
||||
|
@ -271,7 +283,7 @@
|
|||
},
|
||||
|
||||
notificationPreview(n) {
|
||||
if(!n.status.hasOwnProperty('media_attachments') || !n.status.media_attachments.length) {
|
||||
if(!n.status || !n.status.hasOwnProperty('media_attachments') || !n.status.media_attachments.length) {
|
||||
return '/storage/no-preview.png';
|
||||
}
|
||||
return n.status.media_attachments[0].preview_url;
|
||||
|
@ -286,7 +298,11 @@
|
|||
},
|
||||
|
||||
getPostUrl(status) {
|
||||
if(status.local == true) {
|
||||
if(!status) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(!status.hasOwnProperty('local') || status.local == true) {
|
||||
return status.url;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue