|
|
|
@ -71,6 +71,14 @@
|
|
|
|
|
<a v-if="status.place" class="small text-decoration-none text-muted" :href="'/discover/places/'+status.place.id+'/'+status.place.slug" title="Location" data-toggle="tooltip"><i class="fas fa-map-marked-alt"></i> {{status.place.name}}, {{status.place.country}}</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="canFollow(status)">
|
|
|
|
|
<span class="px-2"></span>
|
|
|
|
|
<button class="btn btn-primary btn-sm font-weight-bold py-1 px-3 rounded-lg" @click="follow(status.account.id)"><i class="far fa-user-plus mr-1"></i> Follow</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="status.hasOwnProperty('relationship') && status.relationship.hasOwnProperty('following') && status.relationship.following">
|
|
|
|
|
<span class="px-2"></span>
|
|
|
|
|
<button class="btn btn-outline-primary btn-sm font-weight-bold py-1 px-3 rounded-lg" @click="unfollow(status.account.id)"><i class="far fa-user-check mr-1"></i> Following</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="text-right" style="flex-grow:1;">
|
|
|
|
|
<button class="btn btn-link text-dark py-0" type="button" @click="ctxMenu()">
|
|
|
|
|
<span class="fas fa-ellipsis-h text-lighter"></span>
|
|
|
|
@ -382,6 +390,52 @@
|
|
|
|
|
|
|
|
|
|
statusDeleted(status) {
|
|
|
|
|
this.$emit('status-delete', status);
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
canFollow(status) {
|
|
|
|
|
if(!status.hasOwnProperty('relationship')) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!status.hasOwnProperty('account') || !status.account.hasOwnProperty('id')) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(status.account.id === this.profile.id) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return !status.relationship.following;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
follow(id) {
|
|
|
|
|
event.currentTarget.blur();
|
|
|
|
|
|
|
|
|
|
axios.post('/i/follow', {
|
|
|
|
|
item: id
|
|
|
|
|
}).then(res => {
|
|
|
|
|
this.status.relationship.following = true;
|
|
|
|
|
this.$emit('followed', id);
|
|
|
|
|
}).catch(err => {
|
|
|
|
|
if(err.response.data.message) {
|
|
|
|
|
swal('Error', err.response.data.message, 'error');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
unfollow(id) {
|
|
|
|
|
event.currentTarget.blur();
|
|
|
|
|
|
|
|
|
|
axios.post('/i/follow', {
|
|
|
|
|
item: id
|
|
|
|
|
}).then(res => {
|
|
|
|
|
this.status.relationship.following = false;
|
|
|
|
|
this.$emit('unfollowed', id);
|
|
|
|
|
}).catch(err => {
|
|
|
|
|
if(err.response.data.message) {
|
|
|
|
|
swal('Error', err.response.data.message, 'error');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|